home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / tcsh.z / tcsh
Text File  |  1998-10-20  |  148KB  |  3,367 lines

  1.  
  2.  
  3.  
  4. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      tcsh - shell with file name completion and command line editing
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ttttccccsssshhhh [ ----bbbbccccddddeeeeffffiiiimmmmnnnnqqqqssssttttvvvvVVVVxxxxXXXX ] [ _a_r_g_u_m_e_n_t ... ]
  13.  
  14.      or
  15.      ttttccccsssshhhh ----llll
  16.  
  17.      OS/Dependent Options
  18.      ttttccccsssshhhh [ ----FFFF ] [ ----DDDDnnnnaaaammmmeeee[[[[====vvvvaaaalllluuuueeee]]]] ]
  19.  
  20. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      _T_c_s_h is an enhanced version of the Berkeley UNIX C shell _c_s_h(1).  It
  22.      behaves similarly to the C shell, except for the added utilities of:
  23.  
  24.        1)  Command line editing using Emacs-style commands.
  25.  
  26.        2)  Visual step up/down through the history list.
  27.  
  28.        3)  Terminal mode sanity checking and resetting.
  29.  
  30.        4)  Interactive command, file name and user name completion.
  31.  
  32.        5)  File/directory/user list in the middle of a typed command.
  33.  
  34.        6)  Spelling correction of command, file, and user names.
  35.  
  36.        7)  Lookup of command documentation in the middle of a typed command.
  37.  
  38.        8)  Enhanced history mechanism.
  39.  
  40.        9)  Automatic locking/logout after long periods of idle time.
  41.  
  42.        10) Automatic execution of a single command prior to printing each
  43.            prompt.
  44.  
  45.        11) Automatic periodic command execution.
  46.  
  47.        12) A new syntax for the prompt, and the ability to set the prompt for
  48.            "while" and "for" loops.
  49.  
  50.        13) Time stamps in the history list.
  51.  
  52.        14) An addition to the syntax of filenames to access entries in the
  53.            directory stack, and the ability treat symbolic links in a sane way
  54.            when changing directories.
  55.  
  56.        15) The ability to watch for logins and logouts by user or terminal on
  57.            the machine.
  58.  
  59.        16) A scheduled event list, which specifies commands which are to be
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  71.  
  72.  
  73.  
  74.            executed at given times.
  75.  
  76.        17) A new builtin that does a subset of _l_s(1).
  77.  
  78.        18) An addition to the file expression syntax for a character not in a
  79.            set of characters and the ability to negate a globbing pattern.
  80.  
  81.        19) New automatically initialized environment variables _H_O_S_T and
  82.            _H_O_S_T_T_Y_P_E.
  83.  
  84.        20) Commands for debugging terminal capabilities.
  85.  
  86.        21) Searching for the visual history mechanism.
  87.  
  88.        22) New builtins for the _w_h_i_c_h(1) and _w_h_e_r_e commands.
  89.  
  90.        23) Restarting a stopped editor with two keystrokes.
  91.  
  92.        24) Status line support
  93.  
  94.        25) Automatic execution of a command when the current working directory
  95.            is changed.
  96.  
  97.        26) Native Language System support.
  98.  
  99.        27) Automatic process time reporting.
  100.  
  101.        28) OS Dependent Builtin Support
  102.  
  103.        29) Automatic window size adjustment
  104.  
  105.        30) Input files
  106.  
  107.        31) Additional/Undocumented Options
  108.  
  109.        32) Enhanced history/variable modifier expansion
  110.  
  111.        33) Programmable completion.
  112.  
  113.        34) Enhanced file inquiry operator.
  114.  
  115.        35) Readonly variables.
  116.  
  117.        36) Implicit cd for directory names entered as commands.
  118.  
  119.      For a description of standard C-shell features, see the _c_s_h manual page.
  120.  
  121. 1111.... CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE EEEEDDDDIIIITTTTIIIINNNNGGGG
  122.      Commands that the user types in may be edited using the same control
  123.      characters that Gnu Emacs or vi uses.  Arrow and function key sequences
  124.      are also allowed.  _T_c_s_h allows this by setting the terminal to `CBREAK'
  125.      mode and reading the input one character at a time.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  137.  
  138.  
  139.  
  140.      There is a new shell command, _b_i_n_d_k_e_y, that allows the user to redefine
  141.      what any key does, or find out what any or all of the keys do.
  142.  
  143.      Syntax: bindkey [ -a ] [ -c ] [ -s ] [ -v ] [ -e ] [ -d ] [ -k ] [ -l ] [
  144.      -r ] [ -- ] [ [ in-string | key-name ] [ out-string | command ]]
  145.  
  146.      If no values are given all bindings are listed. If only in-string is
  147.      given, bindings for the in-string is listed.
  148.  
  149.      Otherwise it binds the in-string to the given out-string or command.  If
  150.      out-string, this is treated as input to _t_c_s_h when in-string is typed.
  151.      This may be used recursively to currently a level of 10 deep.
  152.  
  153.      There are two basic key maps: the normal and alternative one. The
  154.      alternative is used by VI command mode. For multi-character input the
  155.      basic key maps contains a sequence-lead-in for the first character in the
  156.      input.
  157.  
  158.      Options:
  159.          -a    bind in-string in alternative key map
  160.          -s    bind an out-string instead of a command
  161.          -c    bind a unix command instead of a command
  162.          -v    bind for default VI-mode
  163.          -e    bind for default emacs-mode
  164.          -k    interpret in-string as a symbolic arrow key name
  165.          -d    bind to compiled in default
  166.          -l    list functions available with short description
  167.          -r    remove the binding of in-string
  168.  
  169.      In strings control characters may be written as caret-<letter> and
  170.      backslash ("\") is used to escape a character as follows:
  171.           \\\\aaaa   bell character
  172.           \\\\nnnn   line feed (new line)
  173.           \\\\bbbb   back space
  174.           \\\\tttt   horizontal tab
  175.           \\\\vvvv   vertical tab
  176.           \\\\ffff   form feed
  177.           \\\\rrrr   carriage return
  178.           \\\\eeee   escape
  179.           \\\\nnnnnnnnnnnn character code in octal
  180.      In all other cases \ escapes the following character. Needed for escaping
  181.      the special meaning of \ and ^.  Delete is written as "^?" (caret-
  182.      question mark).
  183.  
  184.      _T_c_s_h always binds the arrow keys as defined by the termcap entry to:
  185.  
  186.            up arrow       up-history
  187.            down arrow     down-history
  188.            right arrow    forward-char
  189.            left arrow     backward-char
  190.  
  191.      except where these bindings would alter other single character bindings.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  203.  
  204.  
  205.  
  206.      If this is not desired one can avoid the automatic arrow key binding
  207.      using _s_e_t_t_c to change the arrow key escape sequences to the empty string.
  208.      The ansi/vt100 sequences for arrow keys are always bound.
  209.  
  210.      The following is a list of the default emacs and vi bindings.  Characters
  211.      with the 8th bit set are written as M-<character>.  Note however, that
  212.      unlike with the old _b_i_n_d command (see below), the syntax M-<character>
  213.      has no special meaning to the _b_i_n_d_k_e_y command, and the bindings for the
  214.      sequence escape+<character> and M-<character> as given below are handled
  215.      separately (although the default bindings are the same).  The printable
  216.      ascii characters not mentioned in the list are bound to the _s_e_l_f-_i_n_s_e_r_t-
  217.      _c_o_m_m_a_n_d function, which just inserts the given character literally into
  218.      the input line.  The remaining characters are bound to the _u_n_d_e_f_i_n_e_d-_k_e_y
  219.      function, which only causes a beep (unless _n_o_b_e_e_p is set, of course).
  220.  
  221.            EMACS bindings
  222.  
  223.            "^@"                     ->  set-mark-command
  224.            "^A"                     ->  beginning-of-line
  225.            "^B"                     ->  backward-char
  226.            "^C"                     ->  tty-sigintr
  227.            "^D"                     ->  delete-char-or-list
  228.            "^E"                     ->  end-of-line
  229.            "^F"                     ->  forward-char
  230.            "^G"                     ->  is undefined
  231.            "^H"                     ->  backward-delete-char
  232.            "^I"                     ->  complete-word
  233.            "^J"                     ->  newline
  234.            "^K"                     ->  kill-line
  235.            "^L"                     ->  clear-screen
  236.            "^M"                     ->  newline
  237.            "^N"                     ->  down-history
  238.            "^O"                     ->  tty-flush-output
  239.            "^P"                     ->  up-history
  240.            "^Q"                     ->  tty-start-output
  241.            "^R"                     ->  redisplay
  242.            "^S"                     ->  tty-stop-output
  243.            "^T"                     ->  transpose-chars
  244.            "^U"                     ->  kill-whole-line
  245.            "^V"                     ->  quoted-insert
  246.            "^W"                     ->  kill-region
  247.            "^X"                     ->  sequence-lead-in
  248.            "^Y"                     ->  yank
  249.            "^Z"                     ->  tty-sigtsusp
  250.            "^["                     ->  sequence-lead-in
  251.            "^\"                     ->  tty-sigquit
  252.            "^]"                     ->  tty-dsusp
  253.            " " to "/"               ->  self-insert-command
  254.            "0"  to "9"              ->  digit
  255.            ":"  to "~"              ->  self-insert-command
  256.            "^?"                     ->  backward-delete-char
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  269.  
  270.  
  271.  
  272.            EMACS Multi-character and 8 bit bindings
  273.  
  274.            "^[^D" or "M-^D"         ->  list-choices
  275.            "^[^H" or "M-^H"         ->  backward-delete-word
  276.            "^[^I" or "M-^I"         ->  complete-word
  277.            "^[^L" or "M-^L"         ->  clear-screen
  278.            "^[^Z" or "M-^Z"         ->  run-fg-editor
  279.            "^[^[" or "M-^["         ->  complete-word
  280.            "^[^_" or "M-^_"         ->  copy-prev-word
  281.            "^[ "  or "M- "          ->  expand-history
  282.            "^[!"  or "M-!"          ->  expand-history
  283.            "^[$"  or "M-$"          ->  spell-line
  284.            "^[0"  or "M-0"          ->  digit-argument
  285.            "^[1"  or "M-1"          ->  digit-argument
  286.            "^[2"  or "M-2"          ->  digit-argument
  287.            "^[3"  or "M-3"          ->  digit-argument
  288.            "^[4"  or "M-4"          ->  digit-argument
  289.            "^[5"  or "M-5"          ->  digit-argument
  290.            "^[6"  or "M-6"          ->  digit-argument
  291.            "^[7"  or "M-7"          ->  digit-argument
  292.            "^[8"  or "M-8"          ->  digit-argument
  293.            "^[9"  or "M-9"          ->  digit-argument
  294.            "^[?"  or "M-?"          ->  which-command
  295.            "^[B"  or "M-B"          ->  backward-word
  296.            "^[C"  or "M-C"          ->  capitalize-word
  297.            "^[D"  or "M-D"          ->  delete-word
  298.            "^[F"  or "M-F"          ->  forward-word
  299.            "^[H"  or "M-H"          ->  run-help
  300.            "^[L"  or "M-L"          ->  downcase-word
  301.            "^[N"  or "M-N"          ->  history-search-forward
  302.            "^[P"  or "M-P"          ->  history-search-backward
  303.            "^[R"  or "M-R"          ->  toggle-literal-history
  304.            "^[S"  or "M-S"          ->  spell-word
  305.            "^[U"  or "M-U"          ->  upcase-word
  306.            "^[W"  or "M-W"          ->  copy-region-as-kill
  307.            "^[_"  or "M-_"          ->  insert-last-word
  308.            "^[b"  or "M-b"          ->  backward-word
  309.            "^[c"  or "M-c"          ->  capitalize-word
  310.            "^[d"  or "M-d"          ->  delete-word
  311.            "^[f"  or "M-f"          ->  forward-word
  312.            "^[h"  or "M-h"          ->  run-help
  313.            "^[l"  or "M-l"          ->  downcase-word
  314.            "^[n"  or "M-n"          ->  history-search-forward
  315.            "^[p"  or "M-p"          ->  history-search-backward
  316.            "^[r"  or "M-r"          ->  toggle-literal-history
  317.            "^[s"  or "M-s"          ->  spell-word
  318.            "^[u"  or "M-u"          ->  upcase-word
  319.            "^[w"  or "M-w"          ->  copy-region-as-kill
  320.            "^[^?" or "M-^?"         ->  backward-delete-word
  321.            "^X^X"                   ->  exchange-point-and-mark
  322.            "^X*"                    ->  expand-glob
  323.            "^X$"                    ->  expand-variables
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  335.  
  336.  
  337.  
  338.            "^XG"                    ->  list-glob
  339.            "^Xg"                    ->  list-glob
  340.            "^Xn                     ->  normalize-path
  341.            "^XN                     ->  normalize-path
  342.  
  343.  
  344.            VI Insert Mode functions
  345.  
  346.            "^@"                     ->  is undefined
  347.            "^A"                     ->  beginning-of-line
  348.            "^B"                     ->  backward-char
  349.            "^C"                     ->  tty-sigintr
  350.            "^D"                     ->  list-or-eof
  351.            "^E"                     ->  end-of-line
  352.            "^F"                     ->  forward-char
  353.            "^G"                     ->  list-glob
  354.            "^H"                     ->  backward-delete-char
  355.            "^I"                     ->  complete-word
  356.            "^J"                     ->  newline
  357.            "^K"                     ->  kill-line
  358.            "^L"                     ->  clear-screen
  359.            "^M"                     ->  newline
  360.            "^N"                     ->  down-history
  361.            "^O"                     ->  tty-flush-output
  362.            "^P"                     ->  up-history
  363.            "^Q"                     ->  tty-start-output
  364.            "^R"                     ->  redisplay
  365.            "^S"                     ->  tty-stop-output
  366.            "^T"                     ->  transpose-chars
  367.            "^U"                     ->  backward-kill-line
  368.            "^V"                     ->  quoted-insert
  369.            "^W"                     ->  backward-delete-word
  370.            "^X"                     ->  expand-line
  371.            "^Y"                     ->  tty-dsusp
  372.            "^Z"                     ->  tty-sigtsusp
  373.            "^["                     ->  vi-cmd-mode
  374.            "^\"                     ->  tty-sigquit
  375.            " " to "~"               ->  self-insert-command
  376.            "^?"                     ->  backward-delete-char
  377.  
  378.            VI Command Mode functions
  379.  
  380.            "^@"                     ->  is undefined
  381.            "^A"                     ->  beginning-of-line
  382.            "^B"                     ->  is undefined
  383.            "^C"                     ->  tty-sigintr
  384.            "^D"                     ->  list-choices
  385.            "^E"                     ->  end-of-line
  386.            "^F"                     ->  is undefined
  387.            "^G"                     ->  list-glob
  388.            "^H"                     ->  backward-char
  389.            "^I"                     ->  vi-cmd-mode-complete
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  401.  
  402.  
  403.  
  404.            "^J"                     ->  newline
  405.            "^K"                     ->  kill-line
  406.            "^L"                     ->  clear-screen
  407.            "^M"                     ->  newline
  408.            "^N"                     ->  down-history
  409.            "^O"                     ->  tty-flush-output
  410.            "^P"                     ->  up-history
  411.            "^Q"                     ->  tty-start-output
  412.            "^R"                     ->  redisplay
  413.            "^S"                     ->  tty-stop-output
  414.            "^T"                     ->  is undefined
  415.            "^U"                     ->  backward-kill-line
  416.            "^V"                     ->  is undefined
  417.            "^W"                     ->  backward-delete-word
  418.            "^X"                     ->  expand-line
  419.            "^["                     ->  sequence-lead-in
  420.            "^\"                     ->  tty-sigquit
  421.            " "                      ->  forward-char
  422.            "!"                      ->  expand-history
  423.            "$"                      ->  end-of-line
  424.            "*"                      ->  expand-glob
  425.            "+"                      ->  down-history
  426.            ";"                      ->  vi-repeat-char-fwd
  427.            ","                      ->  vi-repeat-char-back
  428.            "-"                      ->  up-history
  429.            "."                      ->  is undefined
  430.            "/"                      ->  vi-search-back
  431.            "0"                      ->  vi-zero
  432.            "1" to "9"               ->  digit-argument
  433.            "?"                      ->  vi-search-fwd
  434.            "@"                      ->  is undefined
  435.            "A"                      ->  vi-add-at-eol
  436.            "B"                      ->  vi-word-back
  437.            "C"                      ->  change-till-end-of-line
  438.            "D"                      ->  kill-line
  439.            "E"                      ->  vi-endword
  440.            "F"                      ->  vi-char-back
  441.            "I"                      ->  vi-insert-at-bol
  442.            "J"                      ->  history-search-forward
  443.            "K"                      ->  history-search-backward
  444.            "N"                      ->  vi-search-back
  445.            "O"                      ->  sequence-lead-in
  446.            "R"                      ->  vi-replace-mode
  447.            "S"                      ->  vi-substitute-line
  448.            "T"                      ->  vi-charto-back
  449.            "U"                      ->  is undefined
  450.            "V"                      ->  expand-variables
  451.            "W"                      ->  vi-word-fwd
  452.            "X"                      ->  backward-delete-char
  453.            "["                      ->  sequence-lead-in
  454.            "\^"                     ->  beginning-of-line
  455.            "a"                      ->  vi-add
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  467.  
  468.  
  469.  
  470.            "b"                      ->  backward-word
  471.            "c"                      ->  is undefined
  472.            "d"                      ->  vi-delmeta
  473.            "e"                      ->  vi-eword
  474.            "f"                      ->  vi-char-fwd
  475.            "h"                      ->  backward-char
  476.            "i"                      ->  vi-insert
  477.            "j"                      ->  down-history
  478.            "k"                      ->  up-history
  479.            "l"                      ->  forward-char
  480.            "m"                      ->  is undefined
  481.            "n"                      ->  vi-search-fwd
  482.            "r"                      ->  vi-replace-char
  483.            "s"                      ->  vi-substitute-char
  484.            "t"                      ->  vi-charto-fwd
  485.            "u"                      ->  vi-undo
  486.            "v"                      ->  expand-variables
  487.            "w"                      ->  vi-beginning-of-next-word
  488.            "x"                      ->  delete-char
  489.            "~"                      ->  change-case
  490.            "^?"                     ->  backward-delete-char
  491.            "M-?"                    ->  run-help
  492.            "M-["                    ->  sequence-lead-in
  493.            "M-O"                    ->  sequence-lead-in
  494.  
  495.            VI Multi-character bindings
  496.  
  497.            "^[?"                    ->  run-help
  498.  
  499.  
  500.      In _t_c_s_h there are two input modes: _i_n_s_e_r_t and _o_v_e_r_w_r_i_t_e. All characters
  501.      that are bound to the _s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_d either get inserted or
  502.      overwrite what was under the cursor depending on the input mode. In emacs
  503.      one can toggle between modes using the _o_v_e_r_w_r_i_t_e-_m_o_d_e function, and in VI
  504.      one can use any of the replace mode commands.  By default the mode is
  505.      preserved between input lines. To specify a default mode that can be
  506.      enforced at the beginning of each command line, the variable _i_n_p_u_t_m_o_d_e
  507.      can be set to either _i_n_s_e_r_t or _o_v_e_r_w_r_i_t_e.
  508.  
  509.      There is also an older version of bindkey called _b_i_n_d, that allows the
  510.      user to redefine what any key does, or find out what any or all of the
  511.      keys do. This is retained for compatibility reasons.
  512.  
  513.      If given two arguments _b_i_n_d binds the function (first argument) to the
  514.      given key (second argument).  The key may be: the direct character or a
  515.      caret-<letter> combination, which is converted to control-<letter>; M-
  516.      <letter> for an escaped character; or F-<string> for a function key.  For
  517.      the last of these, the function key prefix must be bound to the function
  518.      "sequence-lead-in" and the string specified to the _b_i_n_d command must not
  519.      include this prefix.
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  533.  
  534.  
  535.  
  536.      If given one argument _b_i_n_d takes the argument as the name for a key and
  537.      tells what that key does.  As a special case, the user can say
  538.  
  539.            bind emacs
  540.      or
  541.            bind vi
  542.  
  543.      to bind all the keys for Emacs or vi mode respectively.
  544.  
  545.      If given no arguments _b_i_n_d tells what all of the keys do.  If you give
  546.      bind the single argument of 'defaults', it resets each key to its default
  547.      value (see the above list).
  548.  
  549. 2222.... VVVVIIIISSSSUUUUAAAALLLL HHHHIIIISSSSTTTTOOOORRRRYYYY
  550.      The keys ^P and ^N are used to step up and down the history list.  If the
  551.      user has typed in the following:
  552.  
  553.            > ls
  554.            foo  bar
  555.            > echo mumble
  556.            mumble
  557.            >
  558.  
  559.      then enters ^_P, the shell will place "echo mumble" into the editing
  560.      buffer, and will put the cursor at the end of the line.  If another ^_P is
  561.      entered, then the editing line will change to "ls".  More ^_Ps will make
  562.      the bell ring, since there are no more lines in the history.  ^_N works
  563.      the same way, except it steps down (forward in time).
  564.  
  565.      An easy way to re-do a command is to type ^_P followed by _R_e_t_u_r_n. Also,
  566.      pieces of previous commands can be assembled to make a new command.  The
  567.      commands that work on regions are especially useful for this.
  568.  
  569.      ^_P and ^_N actually only copy commands from out of the history into the
  570.      edit buffer; thus the user may step back into the history and then edit
  571.      things, but those changes do not affect what is actually in _t_c_s_h '_s
  572.      history.
  573.  
  574.      Another way to recall (parts of) history commands is via the 'expand-
  575.      history' function. A variation of the 'expand-history' function is called
  576.      'magic-space'.  This function expands _c_s_h history, and always appends a
  577.      space. Magic-space thus can be bound to <space>, to automatically expand
  578.      _c_s_h history.  Expand-history is normally bound to _M-<_s_p_a_c_e> and magic-
  579.      space is not bound.
  580.  
  581. 3333.... TTTTTTTTYYYY MMMMOOOODDDDEEEE SSSSAAAANNNNIIIITTTTYYYY
  582.      As part of the editor, _t_c_s_h does a check and reset of the terminal mode
  583.      bits.  If the speed has been changed, then _t_c_s_h will change to using that
  584.      speed.  _T_c_s_h will also obey changes in the padding needed by the tty.
  585.      Also, the shell will automatically turn off RAW and CBREAK (on systems
  586.      that use _t_e_r_m_i_o(_7) it will turn on ICANON) modes, and will turn on the
  587.      tty driver's output processing (OPOST).
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  599.  
  600.  
  601.  
  602.      The list of the tty modes that are always set or cleared by _t_c_s_h can be
  603.      examined and modified using the _s_e_t_t_y builtin.  The _s_e_t_t_y display is
  604.      similar to _s_t_t_y(_1), and varies depending on the system's tty driver.
  605.      Modes that _t_c_s_h will always try to set are shown as +_m_o_d_e . Modes that
  606.      _t_c_s_h will always try to clear are shown as -_m_o_d_e and modes that tcsh will
  607.      track and allow to be modified are not shown by default, or if the -_a
  608.      flag is given, are shown without a leading sign. For tty characters, -
  609.      _c_h_a_r disables the tty character, while +_c_h_a_r protects the tty character
  610.      from being changed.
  611.  
  612.      Setty can be used to control the three different modes _t_c_s_h uses for the
  613.      tty. The default mode displayed is the "execute" mode which is used when
  614.      tcsh executes commands. The two other modes are the "edit" mode and the
  615.      "quote" mode. The "edit" mode is used for command line editing, and the
  616.      "quote" mode is used when entering literal characters. The "execute" mode
  617.      can be specified with -_x , the "edit" mode with -_d , and the "quote" mode
  618.      with -_q For example if one wants to set the _e_c_h_o_k flag and let the _e_c_h_o_e
  619.      pass unchanged:
  620.  
  621.            > setty
  622.            iflag:-inlcr -igncr +icrnl
  623.            oflag:+opost +onlcr -onlret
  624.            cflag:
  625.            lflag:+isig +icanon +echo +echoe -echok -echonl -noflsh
  626.                  +echoctl -flusho +iexten
  627.            chars:
  628.            > setty +echok echoe
  629.            > setty
  630.            iflag:-inlcr -igncr +icrnl
  631.            oflag:+opost +onlcr -onlret
  632.            cflag:
  633.            lflag:+isig +icanon +echo +echok -echonl -noflsh +echoctl
  634.                  -flusho +iexten
  635.            chars:
  636.  
  637.  
  638. 4444.... WWWWOOOORRRRDDDD CCCCOOOOMMMMPPPPLLLLEEEETTTTIIIIOOOONNNN
  639.      In typing commands, it is no longer necessary to type a complete name,
  640.      only a unique abbreviation is necessary.  When you type a TAB to _t_c_s_h it
  641.      will complete the name for you, echoing the full name on the terminal
  642.      (and entering it into the edit buffer).  If the prefix you typed matches
  643.      no name, the terminal bell is rung, unless the variable _n_o_b_e_e_p is set.
  644.      The name may be partially completed if the prefix matches several longer
  645.      names.  If this is the case, the name is extended up to the point of
  646.      ambiguity, and the bell is rung.  This works for file names, command
  647.      names, shell variables and the ~ user name convention.  The variable
  648.      _f_i_g_n_o_r_e may be set to a list of suffixes to be disregarded during
  649.      completion.
  650.  
  651.      _E_x_a_m_p_l_e
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  665.  
  666.  
  667.  
  668.      Assume the current directory contained the files:
  669.  
  670.            DSC.TXT   bin       cmd       lib       memos
  671.            DSC.NEW   chaos     cmtest    mail      netnews
  672.            bench     class     dev       mbox      new
  673.  
  674.      The command:
  675.  
  676.            > gnumacs ch[TAB]
  677.  
  678.      would cause _t_c_s_h to complete the command with the file name chaos.  If
  679.      instead, the user had typed:
  680.  
  681.            > gnumacs D[TAB]
  682.  
  683.      _t_c_s_h would have extended the name to DSC and rung the terminal bell,
  684.      indicating partial completion. However, if _f_i_g_n_o_r_e had previously been
  685.      set to a list containing .NEW as one element, e.g. ( .o .NEW ), _t_c_s_h
  686.      would have completed the `D' to DSC.TXT.
  687.  
  688.      File name completion works equally well when other directories are
  689.      addressed.  Additionally, _t_c_s_h understands the C shell tilde (~)
  690.      convention for home directories.  In addition it caches tilde name
  691.      references for fast access. This cache can be flushed by using the
  692.      builtin _r_e_h_a_s_h. Thus,
  693.  
  694.            > cd ~speech/data/fr[TAB]
  695.  
  696.      does what one might expect.  This may also be used to expand login names
  697.      only.  Thus,
  698.  
  699.            > cd ~sy[TAB]
  700.  
  701.      expands to
  702.  
  703.            > cd ~synthesis
  704.  
  705.  
  706.      Command names may also be completed, for example,
  707.  
  708.            > gnum[TAB]
  709.  
  710.      will expand to "gnumacs" (assuming that there are no other commands that
  711.      begin with "gnum").
  712.  
  713.      Shell and environment variables are recognized also and in addition they
  714.      can be expanded:
  715.  
  716.            > set local=/usr/local
  717.            > echo $lo[TAB]
  718.  
  719.      will expand to "$local/". Note that a slash is appended because the
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  731.  
  732.  
  733.  
  734.      expanded variable points to a directory. Also:
  735.  
  736.            > set local=/usr/local
  737.            > echo $local/[^D]
  738.            bin/ etc/ lib/ man/ src/
  739.  
  740.      will correctly list the contents of /usr/local. Shell and environment
  741.      variables can also be expanded via the expand-variables function:
  742.  
  743.            > echo $local/[^X$]
  744.            > echo /usr/local/
  745.  
  746.  
  747.      Completion also works when the cursor is in the middle of the line,
  748.      rather than just the end.  All of the text after the cursor will be
  749.      saved, the completion will work (possibly adding to the current name),
  750.      and then the saved text will be restored in place, after the cursor.
  751.  
  752.      The behavior of the completion can be changed by the setting of several
  753.      shell variables:
  754.  
  755.      Setting the _r_e_c_e_x_a_c_t variable makes an exact command be expanded rather
  756.      than just ringing the bell.  For example, assume the current directory
  757.      has two sub-directories called foo and food, then with _r_e_c_e_x_a_c_t set the
  758.      following could be done:
  759.  
  760.            > cd fo[TAB]
  761.      to ...
  762.            > cd foo[TAB]
  763.      to ...
  764.            > cd foo/
  765.  
  766.      rather than beeping on the second TAB.
  767.  
  768.      If the _a_u_t_o_l_i_s_t variable is set, invoking completion when several choices
  769.      are possible will automatically list the choices, effectively merging the
  770.      functionality described in the next section into the completion
  771.      mechanism. If _a_u_t_o_l_i_s_t is set to "ambiguous", then _t_c_s_h will only list
  772.      the choices if there were no new characters added in the completion
  773.      operation.
  774.  
  775.  
  776.      The "noise level" can be controlled by the value that _m_a_t_c_h_b_e_e_p is set
  777.      to: With matchbeep=nomatch, completion will only beep if there are no
  778.      matching names; with matchbeep=ambiguous, completion will _a_l_s_o beep if
  779.      there are many possible matches; with matchbeep=notunique, completion
  780.      will _a_l_s_o beep when there is an exact match but there are other, longer,
  781.      matches (see recexact).  With matchbeep=never or set to any other value
  782.      completion will never beep. If matchbeep is not set it defaults to
  783.      ambiguous.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  797.  
  798.  
  799.  
  800.      If the _a_u_t_o_e_x_p_a_n_d variable is set, the expand-history function will be
  801.      invoked automatically before the completion attempt, expanding normal _c_s_h
  802.      history substitutions.
  803.  
  804.      For covert operation, the variable _n_o_b_e_e_p can be set; it will prevent the
  805.      completion mechanism, as well as _t_c_s_h in general, from actually beeping.
  806.      Finally, if the _a_u_t_o_c_o_r_r_e_c_t variable is set, the spelling correction is
  807.      attempted for any path components up to the completion point.
  808.  
  809. 5555.... LLLLIIIISSSSTTTTIIIINNNNGGGG OOOOFFFF PPPPOOOOSSSSSSSSIIIIBBBBLLLLEEEE NNNNAAAAMMMMEEEESSSS
  810.      At any point in typing a command, you may request "what names are
  811.      available".  Thus, when you have typed, perhaps:
  812.  
  813.            > cd ~speech/data/fritz/
  814.  
  815.      you may wish to know what files or sub-directories exist (in
  816.      ~speech/data/fritz), without, of course, aborting the command you are
  817.      typing.  Typing the character Control-D (^D), will list the names (files,
  818.      in this case) available.  The files are listed in multicolumn format,
  819.      sorted column-wise.  Directories are indicated with a trailing `/',
  820.      executable files with a `*', symbolic links with a '@', sockets with a
  821.      '=', FIFOs (named pipes) with a '|', character devices with a '%', and
  822.      block devices with a '#'.  Once printed, the command is re-echoed for you
  823.      to complete.
  824.  
  825.      Additionally, one may want to know which files match a prefix.  If the
  826.      user had typed:
  827.  
  828.            > cd ~speech/data/fr[^D]
  829.  
  830.      all files and sub-directories whose prefix was ``fr'' would be printed.
  831.      Notice that the example before was simply a degenerate case of this with
  832.      a null trailing file name. (The null string is a prefix of all strings.)
  833.      Notice also, that a trailing slash is required to pass to a new directory
  834.      for both file name completion and listing.
  835.  
  836.      The degenerate
  837.  
  838.            > ~[^D]
  839.  
  840.      will print a full list of login names on the current system.  Note,
  841.      however, that the degenerate
  842.  
  843.            > <Spaces>[^D]
  844.  
  845.      does not list all of the commands, but only the files in the current
  846.      working directory.
  847.  
  848.      Listing/expanding of words that match a name containing wildcard
  849.      characters can be done via the list-glob/expand-glob function:
  850.            > ls
  851.            foo.c  bar.c  a.out
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  863.  
  864.  
  865.  
  866.            > vi *.c[^Xg]
  867.            foo.c bar.c
  868.            > vi *.c[^X*]
  869.            > vi foo.c bar.c
  870.  
  871. CCCCoooommmmmmmmaaaannnndddd NNNNaaaammmmeeee RRRReeeeccccooooggggnnnniiiittttiiiioooonnnn
  872.      Command name recognition and completion works in the same manner as file
  873.      name recognition and completion above.  The current value of the
  874.      environment variable _P_A_T_H is used in searching for the command.  For
  875.      example
  876.  
  877.            > newa[TAB]
  878.  
  879.      might expand to
  880.  
  881.            > newaliases
  882.  
  883.      Also,
  884.  
  885.            > new[^D]
  886.  
  887.      would list all commands (along PATH) that begin with "new".
  888.  
  889.      Note that Control-D has three different effects on _t_c_s_h. On an empty line
  890.      (one that contains nothing, not even spaces), ^_D sends an EOF to _t_c_s_h
  891.      just as it does for normal programs.  When the cursor is in the middle of
  892.      a line of text, ^_D deletes the character that the cursor is under.
  893.      Finally, a ^_D at the end of a line of text lists the available names at
  894.      that point.  To get a list of available names when the cursor is in the
  895.      middle of a line (or on an empty line), a Meta-Control-D should be typed
  896.      (Escape followed by Control-D).
  897.  
  898. 6666.... SSSSPPPPEEEELLLLLLLLIIIINNNNGGGG CCCCOOOORRRRRRRREEEECCCCTTTTIIIIOOOONNNN
  899.      If while typing a command, the user mistypes or misspells a file name,
  900.      user name, or command name, _t_c_s_h can correct the spelling.  When
  901.      correcting a file name, each part of the path is individually checked and
  902.      corrected.  Spelling correction can be invoked in several different ways:
  903.  
  904.      The _s_p_e_l_l-_w_o_r_d function, normally bound to M-s (and M-S), will attempt to
  905.      correct the word immediately before the cursor.  For example, suppose
  906.      that the user has typed:
  907.  
  908.            > cd /uxr/spol/news[ESC s]
  909.  
  910.      _T_c_s_h will check the path for spelling, correct the mistakes, and redraw
  911.      the line as
  912.  
  913.            > cd /usr/spool/news
  914.  
  915.      leaving the cursor at the end of the line.
  916.  
  917.  
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  929.  
  930.  
  931.  
  932.      Spelling correction of the entire command line (independent of where the
  933.      cursor is) can be done with the _s_p_e_l_l-_l_i_n_e function, normally bound to
  934.      M-$ (Escape Dollar-sign).  It will check each word independently, but in
  935.      order to avoid e.g. command options, no correction is attempted on words
  936.      whose first character is found in the string "!.\^-*%".
  937.  
  938.      Finally, automatic spelling correction will be done each time the Return
  939.      key is hit, if the _c_o_r_r_e_c_t variable is set to an appropriate value:
  940.      correct=cmd will cause the spelling of the command name only to be
  941.      checked, while correct=all causes checking of all words on the line, like
  942.      the spell-line function.  If any part of the command line is corrected,
  943.      the user will be given a special prompt as defined by the _p_r_o_m_p_t_3
  944.      variable, followed by the corrected line, e.g.
  945.  
  946.            > lz /usr/bin
  947.            CORRECT>ls /usr/bin (y|n|e)?
  948.  
  949.      Answering 'y' or <space> at the prompt will cause the corrected line to
  950.      be executed, 'e' will leave the uncorrected command in the input buffer
  951.      and anything else will execute the original line unchanged.
  952.  
  953.      Automatic correction is not guaranteed to work the way the user intended.
  954.      Command line parsing is done in a rudimentary fashion. It is mostly
  955.      provided as an experimental feature. Suggestions and improvements are
  956.      welcome.
  957.  
  958. 7777.... DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN LLLLOOOOOOOOKKKKUUUUPPPP
  959.      The editor function _r_u_n-_h_e_l_p (M-h) prints a help file on the current
  960.      command (using the same definition of current as the completion routines
  961.      use).  This help file is found by searching the path list HPATH for files
  962.      of the form foo.help, foo.1, foo.8, or foo.6 in that order (assuming that
  963.      the current command is foo).  The file is just printed, not paged in any
  964.      way.  This is because _r_u_n-_h_e_l_p is meant to be used to look up short help
  965.      files, not manual pages (although it can do manual pages also).
  966.  
  967. 8888.... EEEENNNNHHHHAAAANNNNCCCCEEEEDDDD HHHHIIIISSSSTTTTOOOORRRRYYYY MMMMEEEECCCCHHHHAAAANNNNIIIISSSSMMMM
  968.      _T_c_s_h will save the history list between login sessions.  It does this by
  969.      writing the current list to the file "~/.history" on logout, and reading
  970.      it in on login.  For example, placing the line
  971.  
  972.            > set history=25 savehist=20
  973.  
  974.      tells _t_c_s_h to save the last 25 commands on the history list, and to save
  975.      the last 20 of them between logins.  The "savehist" variable may be set
  976.      up to the size of history, although it is an error to have _s_a_v_e_h_i_s_t
  977.      larger than _h_i_s_t_o_r_y. In addition to the above _t_c_s_h, keeps unparsed
  978.      (literal) versions of the history if the variable _h_i_s_t_l_i_t is set. Also
  979.      the toggle-history function toggles between the parsed and literal
  980.      version of the recalled history in the editor buffer. For example:
  981.  
  982.            > set histlit
  983.            > echo !:s/foo/bar; ls
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  995.  
  996.  
  997.  
  998.            Modifier failed.
  999.            > ^P
  1000.            > echo !:s/foo/bar; ls
  1001.            > unset histlit
  1002.            > echo !:s/foo/bar; ls
  1003.            Modifier failed.
  1004.            > ^P
  1005.            > echo unset histlit[M-r]
  1006.            > echo !:s/foo/bar; ls
  1007.  
  1008.      _T_c_s_h also supports the history escape !#. This undocumented _c_s_h escape
  1009.      holds the words of the current line. This is useful in renaming commands:
  1010.  
  1011.            > mv foo bar!#:1
  1012.            mv foo barfoo
  1013.  
  1014.      Care should be taken when using this history expansion in _c_s_h since there
  1015.      is no check for recursion. In _t_c_s_h up to 10 levels of recursion are
  1016.      allowed.
  1017.  
  1018.      Another difference between _t_c_s_h and _c_s_h history expansion, is the
  1019.      treatment of history arguments. In _c_s_h !_3_d expands to event 3 with the
  1020.      letter "d" appended to it. There is no way to repeat a command that
  1021.      begins with a number using the name of the command in the history escape.
  1022.      In _t_c_s_h only numeric arguments are treated as event numbers; therefore
  1023.      !_3_d is interpreted as: repeat the last command that started with the
  1024.      string "3d". To mimic the _c_s_h behavior !_3\_d can be used.
  1025.  
  1026.  
  1027. 9999.... AAAAUUUUTTTTOOOOMMMMAAAATTTTIIIICCCC LLLLOOOOGGGGOOOOUUUUTTTT////LLLLOOOOCCCCKKKKIIIINNNNGGGG
  1028.      The automatic locking and logout time are controlled by the variable
  1029.      _a_u_t_o_l_o_g_o_u_t. The value of the first word is the number of minutes of
  1030.      inactivity will be allowed before automatically logging the user out.
  1031.      When that many minutes have been reached, the shell prints "auto-logout"
  1032.      and dies (without executing ~/.logout).  The default for _t_c_s_h is to set
  1033.      _a_u_t_o_l_o_g_o_u_t for 60 minutes on login shells, and when the user is root.  To
  1034.      disable autologout (for instance in a window system), unset the shell
  1035.      variable _a_u_t_o_l_o_g_o_u_t.
  1036.  
  1037.      The value of the optional second word indicates the number of minutes of
  1038.      inactivity after which the user will be prompted for his login password
  1039.      to continue working. Failure to enter the correct password 5 times,
  1040.      results in auto-logout.
  1041.  
  1042. 11110000.... EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN OOOOFFFF AAAA CCCCOOOOMMMMMMMMAAAANNNNDDDD PPPPRRRRIIIIOOOORRRR TTTTOOOO EEEEAAAACCCCHHHH PPPPRRRROOOOMMMMPPPPTTTT
  1043.      _T_c_s_h supports a special alias, _p_r_e_c_m_d, which if set holds a command that
  1044.      will be executed before printing each prompt.  For example, if the user
  1045.      has done
  1046.  
  1047.            > alias precmd date
  1048.  
  1049.      then the program _d_a_t_e will be run just before the shell prompts for each
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1061.  
  1062.  
  1063.  
  1064.      command.  There are no limitations on what precmd can be set to do,
  1065.      although discretion should be used.
  1066.  
  1067. 11111111.... PPPPEEEERRRRIIIIOOOODDDDIIIICCCC CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN
  1068.      _T_c_s_h is now capable of providing periodic command execution through the
  1069.      use of the shell variable _t_p_e_r_i_o_d and the alias _p_e_r_i_o_d_i_c. When these
  1070.      items are set, the alias _p_e_r_i_o_d_i_c will be executed every _t_p_e_r_i_o_d minutes.
  1071.      This provides a convenient means for checking on common but infrequent
  1072.      changes, such as new messages.  Example:
  1073.  
  1074.            > set tperiod = 30
  1075.            > alias periodic checknews
  1076.  
  1077.      This will cause the _c_h_e_c_k_n_e_w_s(1) program to be run every 30 minutes.
  1078.      Having the alias _p_e_r_i_o_d_i_c set but with an unset _t_p_e_r_i_o_d (or a value of 0
  1079.      for _t_p_e_r_i_o_d) will cause _p_e_r_i_o_d_i_c to degenerate to another form of _p_r_e_c_m_d.
  1080.  
  1081. 11112222.... NNNNEEEEWWWW PPPPRRRROOOOMMMMPPPPTTTT FFFFOOOORRRRMMMMAAAATTTT
  1082.      The format for the _p_r_o_m_p_t shell variable has been changed to include many
  1083.      new things, such as the current time of day, current working directory,
  1084.      etc.  The new format uses "%<char>" to signal an expansion, much like
  1085.      _p_r_i_n_t_f(_3_S). The available sequences are:
  1086.  
  1087.            %/          Current working directory.
  1088.            %~          cwd.  If it starts with $HOME, that part is
  1089.                        replaced by a ~. In addition if a directory
  1090.                        name prefix matches a user's home directory,
  1091.                        that part of the directory will be substituted
  1092.                        with ~user. NOTE: The ~user substitution will
  1093.                        only happen if the shell has performed a ~
  1094.                        expansion for that user name in this session.
  1095.            %c or %.    Trailing component of cwd, may be
  1096.                        followed by a digit to get more than one
  1097.                        component, if it starts with $HOME, that
  1098.                        part is replaced with a ~.
  1099.            %C          Trailing component of cwd, may be followed
  1100.                        by a digit to get more than one component, no
  1101.                        ~ substitution.
  1102.            %h, %!, !   Current history event number.
  1103.            %M          The full machine hostname.
  1104.            %m          The hostname up to the first ".".
  1105.            %S (%s)     Start (stop) standout mode.
  1106.            %B (%b)     Start (stop) boldfacing mode. (Only if
  1107.                        tcsh was compiled to be eight bit clean.)
  1108.            %U (%u)     Start (stop) underline mode. (Only if
  1109.                        tcsh was compiled to be eight bit clean.)
  1110.            %t or %@    Current time of day, in 12-hour, am/pm format.
  1111.            %T          Current time of day, in 24-hour format.
  1112.                        (But see the _a_m_p_m shell variable below.)
  1113.            %p          Current time in 12-hour format, am/pm format with seconds.
  1114.            %P          Current time in 24-hour format, with seconds.
  1115.            \c          `c' is parsed the same way as in bindkey.
  1116.  
  1117.  
  1118.  
  1119.                                                                        PPPPaaaaggggeeee 11117777
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1127.  
  1128.  
  1129.  
  1130.            ^c          `c' is parsed the same way as in bindkey.
  1131.            %%          A single %.
  1132.            %n          The user name, contents of $user.
  1133.            %d          The weekday in <Day> format.
  1134.            %D          The day in dd format.
  1135.            %w          The month in <Mon> format.
  1136.            %W          The month in mm format.
  1137.            %y          The year in yy format.
  1138.            %Y          The year in yyyy format.
  1139.            %l          The line (tty) the user is logged on.
  1140.            %L          clear from prompt to end of display or end of line.
  1141.            %#          A `#' if tcsh is run as a root shell,
  1142.                        a `>' if not.
  1143.            %{..%}      Include string as a literal escape sequence.
  1144.                        Note that the enclosed escape sequence, should
  1145.                        only be used to change terminal attributes and
  1146.                        should not move the cursor location. Also, this
  1147.                        cannot be the last character in the prompt
  1148.                        string. (Available only if tcsh was compiled to
  1149.                        be eight bit clean.)
  1150.            %?          return code of the last command executed just
  1151.                        before the prompt.
  1152.            %R          In prompt3 this is the corrected string; in
  1153.                        prompt2 it is the status of the parser.
  1154.  
  1155.      On %C, %c and %., if the optional digit is 0, then the next digit is
  1156.      interpreted as the number of directory components to be skipped, and the
  1157.      number of components skipped are reported as: /<num-skipped>path/path.
  1158.  
  1159.      The sequences for standout are often used to indicate that this is an
  1160.      enabled (running as root) shell.  An example:
  1161.  
  1162.            > set prompt="%m [%h] %U[%@]%u [%/] you rang? "
  1163.            tut [37] [_2:_5_4_p_m] [/usr/accts/sys] you rang? _
  1164.  
  1165.      In addition, there is a new variable, _p_r_o_m_p_t_2, which is used to prompt
  1166.      for the body of while and for loops (wherever normal _c_s_h prompts with a
  1167.      question mark).  The default for _p_r_o_m_p_t_2 is "%R? ": the status of the
  1168.      parser followed by a question mark.  This alternate prompt is also used
  1169.      when the parser is waiting for more input; i.e. when the previous line
  1170.      ended in a \.  The _p_r_o_m_p_t_3 variable is used when displaying the corrected
  1171.      command line when automatic spelling correction is in effect; it defaults
  1172.      to "CORRECT>%R (y|n|e)? ".
  1173.  
  1174.  
  1175. 11113333.... TTTTIIIIMMMMEEEE----SSSSTTTTAAAAMMMMPPPPEEEEDDDD HHHHIIIISSSSTTTTOOOORRRRYYYY LLLLIIIISSSSTTTT
  1176.      The history list in _t_c_s_h now has a time-of-day stamp attached to each
  1177.      history list event.  This time stamp is printed whenever the history
  1178.      command is executed.  This allows the user to keep track of when the
  1179.      various events occurred.  The time stamps are not maintained on the saved
  1180.      history list (also available in _c_s_h); thus, on logging back in, all the
  1181.      saved history events will be recorded with the login time as their time
  1182.  
  1183.  
  1184.  
  1185.                                                                        PPPPaaaaggggeeee 11118888
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1193.  
  1194.  
  1195.  
  1196.      stamp.  The time stamp printouts can be omitted from the history list by
  1197.      adding the -t switch to the _h_i_s_t_o_r_y command.  _T_c_s_h provides a way to
  1198.      save, restore and clear the history list in a file.
  1199.  
  1200.      _h_i_s_t_o_r_y -_S [<_f_i_l_e_n_a_m_e>]
  1201.      _h_i_s_t_o_r_y -_L [<_f_i_l_e_n_a_m_e>]
  1202.      _h_i_s_t_o_r_y -_c
  1203.  
  1204.      The 'S' flag saves the current history, the 'L' flags loads the history,
  1205.      and the 'c' flag clears the history.  If a filename is not specified,
  1206.      then $HOME/.history is used.
  1207.  
  1208. 11114444.... DDDDIIIIRRRREEEECCCCTTTTOOOORRRRYYYY AAAACCCCCCCCEEEESSSSSSSS
  1209.      _T_c_s_h supports three new flags to control directory style printing for cd,
  1210.      pushd, popd, and dirs:
  1211.  
  1212.      -_n  Print entries in new lines so that the screen width is not exceeded
  1213.  
  1214.      -_l  Don't print ~ but print the whole path
  1215.  
  1216.      -_v  Print the stack entries one in each line, preceded by the stack
  1217.          number.
  1218.  
  1219.      Note that popd +n can be used to pop out stack entries of directories
  1220.      that do not exist any more.
  1221.  
  1222.      _T_c_s_h always saves the last directory visited. Changing to the previous
  1223.      directory can be done by using '_c_d -' or '_p_u_s_h_d -'.
  1224.  
  1225.      _T_c_s_h will now allow the user to access all elements in the directory
  1226.      stack directly.  The syntax "=<digit>" is recognized by _t_c_s_h as
  1227.      indicating a particular directory in the stack.  (This works for the
  1228.      file/command name recognition as well.)  This syntax is analogous to the
  1229.      ~ syntax for access to users' home directories.  The stack is viewed as
  1230.      zero-based, i.e., =0 is the same as $cwd, which is the same as ".".  As a
  1231.      special case, the string "=-" is recognized as indicating the last
  1232.      directory in the stack.  Thus,
  1233.  
  1234.            > dirs -v
  1235.            0 /usr/net/bin
  1236.            1 /usr/spool/uucp
  1237.            2 /usr/accts/sys
  1238.            > echo =2
  1239.            /usr/accts/sys
  1240.            > ls -l =1/LOGFILE
  1241.            -rw-r--r-- 1 uucp   2594 Jan 19 09:09 /usr/spool/uucp/LOGFILE
  1242.            > echo =-/.cs*
  1243.            /usr/accts/sys/.cshrc
  1244.            > echo =4
  1245.            Not that many dir stack entries.
  1246.            >
  1247.  
  1248.  
  1249.  
  1250.  
  1251.                                                                        PPPPaaaaggggeeee 11119999
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1259.  
  1260.  
  1261.  
  1262.      _T_c_s_h will complain if you ask for a directory stack item which does not
  1263.      exist.
  1264.  
  1265.      In the normal _c_s_h, saying "pushd +2" would rotate the entire stack around
  1266.      through 2 stack elements, placing the entry found there at the top of the
  1267.      stack.  If, however, the new shell variable _d_e_x_t_r_a_c_t is set, then issuing
  1268.      "pushd +n" will cause the nth directory stack element to be extracted
  1269.      from its current position, which will then be pushed onto the top of the
  1270.      stack.  Example:
  1271.  
  1272.            > dirs
  1273.            ~ /usr/spool/uucp /usr/net/bin /sys/src
  1274.            > set dextract
  1275.            > pushd +2
  1276.            /usr/net/bin ~ /usr/spool/uucp /sys/src
  1277.            > unset dextract
  1278.            > pushd +2
  1279.            /usr/spool/uucp /sys/src /usr/net/bin ~
  1280.  
  1281.      _T_c_s_h provides a way to save, restore and clear the directory stack in a
  1282.      file.
  1283.  
  1284.      _d_i_r_s -_S [<_f_i_l_e_n_a_m_e>]
  1285.      _d_i_r_s -_L [<_f_i_l_e_n_a_m_e>]
  1286.      _d_i_r_s -_c
  1287.  
  1288.      The 'S' flag saves the current directory stack, the 'L' flags loads the
  1289.      directory stack, and the 'c' flag clears the directory stack.  If a
  1290.      filename is not specified, then $HOME/.cshdirs is used.
  1291.  
  1292.      In addition, if the shell variable _d_u_n_i_q_u_e is set, only directories that
  1293.      are not already in the directory stack will be added when _p_u_s_h is
  1294.      invoked.
  1295.  
  1296.      The way symbolic links that point to directories are crossed is
  1297.      determined by the _s_y_m_l_i_n_k_s variable. By default, it is not set to
  1298.      anything and symbolic links are not treated specially. However, it can be
  1299.      set to either:  _c_h_a_s_e, _i_g_n_o_r_e, or _e_x_p_a_n_d. If _s_y_m_l_i_n_k_s is set to _c_h_a_s_e,
  1300.      then every time the directory changes, $_c_w_d reflects the real directory
  1301.      name, and not the name through the link. A notable exception is the
  1302.      user's home directory, but that should be fixed. If _s_y_m_l_i_n_k_s is set to
  1303.      either _i_g_n_o_r_e or _e_x_p_a_n_d, then tcsh tries to determine the current
  1304.      directory name relative to the name of the current directory before the
  1305.      link was crossed. In simple terms, if you chdir through a symbolic link
  1306.      and then cd .., you will end .. relatively to where you were before you
  1307.      crossed the link and not .. relatively to where the symbolic link points.
  1308.      While _i_g_n_o_r_e affects only builtin commands and completion, _e_x_p_a_n_d affects
  1309.      command execution too, by `fixing' arguments that it considers to be path
  1310.      names. Unfortunately this does not work in every case, specially when
  1311.      file arguments are embedded in command line options. _E_x_p_a_n_d also allows
  1312.      to specify the `real' (as opposed to the one determined relatively to
  1313.      $_c_w_d), _b_y _q_u_o_t_i_n_g _t_h_e _f_i_l_e _a_r_g_u_m_e_n_t.
  1314.  
  1315.  
  1316.  
  1317.                                                                        PPPPaaaaggggeeee 22220000
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1325.  
  1326.  
  1327.  
  1328.      For example:
  1329.  
  1330.            > cd /tmp
  1331.            > mkdir from from/src to
  1332.            > ln -s ../from/src to/dst
  1333.  
  1334.            > unset symlinks
  1335.            > cd /tmp/to/dst; echo $cwd
  1336.            /tmp/to/dst
  1337.            > cd ..; echo $cwd
  1338.            /tmp/from
  1339.  
  1340.            > set symlinks=chase
  1341.            > cd /tmp/to/dst; echo $cwd
  1342.            /tmp/from/src
  1343.            > cd ..; echo $cwd
  1344.            /tmp/from
  1345.  
  1346.            > set symlinks=ignore
  1347.            > cd /tmp/to/dst; echo $cwd
  1348.            /tmp/to/dst
  1349.            > cd ..; echo $cwd
  1350.            /tmp/to
  1351.  
  1352.            > set symlinks=expand
  1353.            > cd /tmp/to/dst; echo $cwd
  1354.            /tmp/to/dst
  1355.            > cd ..; echo $cwd       # builtin
  1356.            /tmp/to
  1357.            > cd /tmp/to/dst; echo $cwd
  1358.            /tmp/to/dst
  1359.            > cd ".."; echo $cwd          # quoted
  1360.            /tmp/from
  1361.            > /bin/echo ..           # rewrites non builtin commands.
  1362.            /tmp/to
  1363.            > /bin/echo ".."
  1364.  
  1365.      While the _e_x_p_a_n_d setting is the most convenient, and makes symbolic links
  1366.      invisible, it can sometimes be misleading and confusing in cases where it
  1367.      fails to recognize arguments. A compromise is to use the _i_g_n_o_r_e setting
  1368.      and use the editor functions "normalize-path", bound by default to ^_X_n.
  1369.  
  1370. 11115555.... WWWWAAAATTTTCCCCHHHHIIIINNNNGGGG FFFFOOOORRRR LLLLOOOOGGGGIIIINNNNSSSS AAAANNNNDDDD LLLLOOOOGGGGOOOOUUUUTTTTSSSS
  1371.      _T_c_s_h has a mechanism so that the user can watch for login and logout
  1372.      activity of any user or terminal in the system.  This is accomplished
  1373.      using the new special shell variable _w_a_t_c_h, which contains login/terminal
  1374.      pattern pairs to be checked for activity.  For example:
  1375.  
  1376.            > set watch=(sys ttyjd root console)
  1377.  
  1378.      This setting will allow the user to check on when the user "sys" logs in
  1379.      on /dev/ttyjd.  Similarly, it will inform the user of root's activity on
  1380.  
  1381.  
  1382.  
  1383.                                                                        PPPPaaaaggggeeee 22221111
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1391.  
  1392.  
  1393.  
  1394.      the console.  In order to be more general, the word "any" may be
  1395.      substituted for either a user's or a terminal's name, thus allowing
  1396.  
  1397.            > set watch=('b*' any any ttyh0)
  1398.  
  1399.      which will check for users that match the pattern 'b*' logging in or out
  1400.      of the system on any terminal, as well as anyone logging in to
  1401.      /dev/ttyh0. Naturally, the completely general case
  1402.  
  1403.            > set watch=(any any)
  1404.  
  1405.      allows the user to check on any and all login/logout activity in the
  1406.      system.
  1407.  
  1408.      By default, the interval between checks of users on the system is 10
  1409.      minutes; this can be changed by making the first element of _w_a_t_c_h a
  1410.      number of minutes which should be used instead, as in
  1411.  
  1412.            > set watch=(40 any any)
  1413.  
  1414.      which will check for any users logging in or out every 40 minutes.
  1415.  
  1416.      There is also a new command, _l_o_g, which is used to cause _t_c_s_h to inform
  1417.      the user of all users/terminals affected by _w_a_t_c_h whether they have been
  1418.      announced before or not.  This is useful if a user has been on for some
  1419.      time and cannot remember if a particular person/terminal is online right
  1420.      now or not.  _L_o_g will reset all indication of previous announcement and
  1421.      give the user the login list all over again, as well as printing the
  1422.      current value of _w_a_t_c_h.
  1423.  
  1424.      The first time that _w_a_t_c_h is set at _t_c_s_h startup, all affected users and
  1425.      terminals will be printed as though those users/terminals had just logged
  1426.      on.  This may appear to be a bug, but is generally considered a feature,
  1427.      since it allows the user to see who is on when he first logs in.
  1428.  
  1429.      The format of the printouts can be tailored via setting of the variable
  1430.      _w_h_o. In addition to the standard prompt % escapes, the following
  1431.      sequences are available for the format specification:
  1432.  
  1433.            %n          The name of the user that logged in/out.
  1434.            %a          The observed action, i.e. "logged on",
  1435.                        "logged off", or "replaced <olduser> on".
  1436.            %l          The line (tty) the user is logged on.
  1437.            %M          The full hostname of the remote host ("local"
  1438.                        if non-remote).
  1439.            %m          The hostname up to the first ".". If only
  1440.                        the ip address is available or the utmp
  1441.                        field contains the name of an x-windows
  1442.                        display, the whole name is printed.
  1443.  
  1444.      The %M and %m sequences are only available on systems that store the
  1445.      remote hostname in /var/adm/utmp. If _w_h_o is not set, the format defaults
  1446.  
  1447.  
  1448.  
  1449.                                                                        PPPPaaaaggggeeee 22222222
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1457.  
  1458.  
  1459.  
  1460.      to "%n has %a %l from %m.", or "%n has %a %l." on systems that don't
  1461.      store the hostname.
  1462.  
  1463. 11116666.... TTTTIIIIMMMMEEEEDDDD EEEEVVVVEEEENNNNTTTT LLLLIIIISSSSTTTT
  1464.      _T_c_s_h now supports a scheduled-event list through the use of the command
  1465.      _s_c_h_e_d. This command gives the user a mechanism by which to arrange for
  1466.      other commands to be executed at given times.  An event is added to the
  1467.      scheduled-event list by saying
  1468.  
  1469.            > sched [+]hh:mm <command>
  1470.  
  1471.      as in
  1472.  
  1473.            > sched 11:00 echo It\'s eleven o\'clock.
  1474.  
  1475.      This will make an entry in the list at 11am for the echo command to be
  1476.      run with the given arguments.  The time may be specified in either
  1477.      absolute or relative time, and absolute times may have a
  1478.      morning/afternoon specification as well, using "am" or "pm."  For
  1479.      example,
  1480.  
  1481.            > sched +2:15 /usr/lib/uucp/uucico -r1 -sother
  1482.            > sched 5pm set prompt='[%h] It\'s after 5; go home: >'
  1483.            > sched +3am echo This syntax doesn\'t work.
  1484.            Relative time inconsistent with am/pm.
  1485.            >
  1486.  
  1487.      Note that _t_c_s_h will complain if you try to make faulty time
  1488.      specifications.
  1489.  
  1490.      Printing the current time-event list is accomplished by giving the _s_c_h_e_d
  1491.      command with no arguments:
  1492.  
  1493.            > sched
  1494.                 1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother
  1495.                 2  Wed Apr  4 17:00  set prompt=[%h] It's after 5; go home: >
  1496.            >
  1497.  
  1498.      There is also a mechanism by which the user can remove an item from the
  1499.      list:
  1500.  
  1501.            > sched --3
  1502.            Usage for delete: sched -<item#>.
  1503.            > sched -3
  1504.            Not that many scheduled events.
  1505.            > sched -2
  1506.            > sched
  1507.                 1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother
  1508.            >
  1509.  
  1510.      All commands specified on the scheduled-event list will be executed just
  1511.      prior to printing the first prompt immediately following the time when
  1512.  
  1513.  
  1514.  
  1515.                                                                        PPPPaaaaggggeeee 22223333
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1523.  
  1524.  
  1525.  
  1526.      the command is to be run.  Hence, it is possible to miss the exact time
  1527.      when the command is to be run, but _t_c_s_h will definitely get around to all
  1528.      commands which are overdue at its next prompt.  Scheduled-event list
  1529.      items which come due while _t_c_s_h is waiting for user input will be
  1530.      executed immediately.  In no case, however, will normal operation of
  1531.      already-running commands be interrupted so that a scheduled-event list
  1532.      element may be run.
  1533.  
  1534.      This mechanism is similar to, but not the same as, the _a_t(1) command on
  1535.      some Unix systems.  Its major disadvantage is that it does not
  1536.      necessarily run a command at exactly the specified time (but only if
  1537.      another command is already being run).  Its major advantage is that
  1538.      commands which run directly from _t_c_s_h, as sched commands are, have access
  1539.      to shell variables and other structures.  This provides a mechanism for
  1540.      changing one's working environment based on the time of day.
  1541.  
  1542. 11117777.... BBBBUUUUIIIILLLLTTTTIIIINNNN FFFFOOOORRRR llllssss ----FFFF
  1543.      There is a new builtin command called _l_s-_F which does the same thing as
  1544.      the command "ls -F".  If the shell variable _s_h_o_w_d_o_t_s has been set, it
  1545.      acts like "ls -aF". If _s_h_o_w_d_o_t_s is equal to "-A", then _l_s-_F acts like "ls
  1546.      -AF". Ls-F works like ls, only it is generally faster, since it does not
  1547.      need to fork and exec, and safer against Trojan horses if the user has
  1548.      `.' in the execution path. If other switches are passed to _l_s-_F, then the
  1549.      normal ls is executed. Aliasing ls to ls-F provides a fast alternative
  1550.      way of listing files.  Note that on non BSD machines, where ls -C is not
  1551.      the default, _l_s-_F, behaves like ls -CF.
  1552.  
  1553.      _l_s-_F appends the following characters depending on the file type:
  1554.  
  1555.            =           File is an AF_UNIX domain socket.
  1556.                        [if system supports sockets]
  1557.            |           File is a named pipe (fifo)
  1558.                        [if system supports named pipes]
  1559.            %           File is a character device
  1560.            #           File is a block device
  1561.            /           File is a directory
  1562.            *           File is executable
  1563.            +           File is a hidden directory [aix]
  1564.                        or context dependent [hpux]
  1565.            :           File is network special [hpux]
  1566.  
  1567.      On systems that support symbolic links the variable _l_i_s_t_l_i_n_k_s controls
  1568.      the way symbolic links are identified. If _l_i_s_t_l_i_n_k_s is not set then the
  1569.      character '@' is appended to the file. If _l_i_s_t_l_i_n_k_s is set then the
  1570.      following characters are appended to the filename depending on the type
  1571.      of file the symbolic links points to:
  1572.  
  1573.            @           File is a symbolic link pointing
  1574.                        to a non-directory
  1575.            >           File is a symbolic link pointing
  1576.                        to a directory
  1577.            &           File is a symbolic link pointing
  1578.  
  1579.  
  1580.  
  1581.                                                                        PPPPaaaaggggeeee 22224444
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1589.  
  1590.  
  1591.  
  1592.                       to nowhere
  1593.  
  1594.      While setting _l_i_s_t_l_i_n_k_s can be helpful while navigating around the file
  1595.      system, it slows down _l_s-_F and it causes mounting of file systems if the
  1596.      symbolic links point to an NFS auto-mounted partition.
  1597.  
  1598. 11118888.... GGGGLLLLOOOOBBBBBBBBIIIINNNNGGGG SSSSYYYYNNNNTTTTAAAAXXXX AAAADDDDDDDDIIIITTTTIIIIOOOONNNNSSSS
  1599.      The syntax for any character in a range (for example ".[a-z]*") has been
  1600.      extended so as to conform with standard Unix regular expression syntax
  1601.      (see _e_d(1)).  Specifically, after an open bracket ("["), if the first
  1602.      character is a caret ("^") then the character matched will be any not in
  1603.      the range specified.  For example:
  1604.  
  1605.            > cd ~
  1606.            > echo .[a-z]*
  1607.            .cshrc .emacs .login .logout .menuwmrc
  1608.            > echo .[^.]*
  1609.            .Xdefaults .Xinit .cshrc .emacs .login .logout .menuwmrc
  1610.            >
  1611.  
  1612.      Note that the second form includes .Xdefaults and .Xinit because 'X' (and
  1613.      all the lower case letters) are outside of the range of a single '.'.
  1614.  
  1615.      Also the ability to negate a globbing pattern has been added:
  1616.  
  1617.            > echo *
  1618.            foo foobar bar barfoo
  1619.            > echo ^foo*
  1620.            bar barfoo
  1621.  
  1622.      Note that this does not work correctly if the expression does not have
  1623.      any wildcard characters (?*[]) or if the expression has braces {}.
  1624.  
  1625.      Currently, \\\\<<<< and \\\\>>>> are not supported.
  1626.  
  1627.  
  1628. 11119999.... NNNNEEEEWWWW EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT AAAANNNNDDDD SSSSHHHHEEEELLLLLLLL VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
  1629.      On startup, _t_c_s_h now automatically initializes the environment variable
  1630.      _H_O_S_T to the name of the machine that it is running on.  It does this by
  1631.      doing a _g_e_t_h_o_s_t_n_a_m_e(2) system call, and setting _H_O_S_T to the result.
  1632.  
  1633.      _T_c_s_h also initializes the environment variable _H_O_S_T_T_Y_P_E to a symbolic
  1634.      name for the type of computer that it is running on.  This is useful when
  1635.      sharing a single physical directory between several types of machines
  1636.      (running NFS, for instance).  For example, if the following is in ._l_o_g_i_n:
  1637.  
  1638.         set path = (~/bin.$HOSTTYPE /usr/ucb /bin /usr/bin /usr/games .)
  1639.  
  1640.      and the user has directories named "bin._m_a_c_h_i_n_e" (where _m_a_c_h_i_n_e is a name
  1641.      from the list below), then the user can have the same programs compiled
  1642.      for different machines in the appropriate "bin._m_a_c_h_i_n_e" directories and
  1643.      _t_c_s_h will run the binary for the correct machine.
  1644.  
  1645.  
  1646.  
  1647.                                                                        PPPPaaaaggggeeee 22225555
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1655.  
  1656.  
  1657.  
  1658.      The current possible values are:
  1659.  
  1660.      _3_8_6_B_S_D         an Intel 386, running 386BSD
  1661.      _a_i_x_3_7_0         an IBM 370, running aix
  1662.      _a_i_x_E_S_A         an IBM ESA, running aix
  1663.      _a_l_l_i_a_n_t        an Alliant FX series
  1664.      _a_l_l_i_a_n_t-_f_x_8_0   an Alliant FX80 (mc68000 based)
  1665.      _a_l_l_i_a_n_t-_f_x_2_8_0_0 an Alliant FX2800 (i860 based)
  1666.      _a_l_p_h_a          an DEC Alpha running OSF/1
  1667.      _a_m_d_a_h_l         an Amdahl running uts 2.1
  1668.      _a_m_i_g_a          an amiga running amix 2.02
  1669.      _a_p_o_l_l_o         an Apollo running DomainOS
  1670.      _a_t_t_3_b_1_5        an AT&T 3b15
  1671.      _a_t_t_3_b_2         an AT&T 3b2
  1672.      _a_t_t_3_b_2_0        an AT&T 3b20
  1673.      _a_t_t_3_b_5         an AT&T 3b5
  1674.      _b_a_l_a_n_c_e        a Sequent Balance (32000 based)
  1675.      _b_s_d_3_8_6         an Intel 386, running BSDI's bsd386
  1676.      _b_u_t_t_e_r_f_l_y      a BBN Computer Butterfly 1000
  1677.      _c_o_h_3_8_6         a 386 running Coherent 4.0
  1678.      _c_o_h_e_r_e_n_t       an unknown machine running Coherent
  1679.      _c_o_n_v_e_x         a Convex
  1680.      _c_r_a_y           a Cray running Unicos
  1681.      _d_e_c_s_t_a_t_i_o_n     a DecStation XXXX
  1682.      _e_t_a_1_0          an ETA 10 running SVR3
  1683.      _g_o_u_l_d-_n_p_1      a Gould NP1
  1684.      _h_k_6_8           a Heurikon HK68 running Uniplus+ 5.0
  1685.      _h_p_3_0_0          an HP 9000, series 300, running mtXinu
  1686.      _h_p_8_0_0          an HP 9000, series 800, running mtXinu
  1687.      _h_p_9_0_0_0_s_3_0_0     an HP 9000, series 300, running hpux
  1688.      _h_p_9_0_0_0_s_5_0_0     an HP 9000, series 500, running hpux
  1689.      _h_p_9_0_0_0_s_7_0_0     an HP 9000, series 700, running hpux
  1690.      _h_p_9_0_0_0_s_8_0_0     an HP 9000, series 800, running hpux
  1691.      _h_p             an HP, running hpux
  1692.      _i_3_8_6           an Intel 386, generic
  1693.      _i_3_8_6-_m_a_c_h      an Intel 386, running mach
  1694.      _i_3_8_6-_l_i_n_u_x     an Intel 386, running Linux
  1695.      _i_3_8_6-_e_m_x       an Intel 386, running emx [unix emulation under OS/2]
  1696.      _i_n_t_e_l_3_8_6       an Intel 386, running INTEL's SVR3
  1697.      _i_r_i_s_3_d         a Silicon Graphics Iris 3000
  1698.      _i_r_i_s_4_d         a Silicon Graphics Iris 4D
  1699.      _i_s_c_3_8_6         an Intel 386, running ISC
  1700.      _l_y_n_x_o_s-_i_3_8_6    _A_n _I_n_t_e_l _3_8_6 _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1701.      _l_y_n_x_o_s-_i_8_6_0    _A_n _I_n_t_e_l _8_6_0 _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1702.      _l_y_n_x_o_s-_m_6_8_k    _A _M_o_t_o_r_o_l_a _6_8_K  _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1703.      _l_y_n_x_o_s-_m_8_8_k    _A _M_o_t_o_r_o_l_a _8_8_K _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1704.      _l_y_n_x_o_s-_s_p_a_r_c   _A _s_p_a_r_c _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1705.      _l_y_n_x_o_s-_m_i_p_s    _A _m_i_p_s _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1706.      _l_y_n_x_o_s-_u_n_k_n_o_w_n _S_o_m_e_t_h_i_n_g _r_u_n_n_i_n_g _L_y_n_x/_O_S-_2._1
  1707.      _m_8_8_k           an mc88000 CPU machine
  1708.      _m_a_c_2           an Apple Computer Macintosh II, running AUX
  1709.      _m_a_s_s_c_o_m_p       a Concurrent (Masscomp), running RTU
  1710.  
  1711.  
  1712.  
  1713.                                                                        PPPPaaaaggggeeee 22226666
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1721.  
  1722.  
  1723.  
  1724.      _m_i_n_i_x_3_8_6       an i386 running minix
  1725.      _m_i_n_i_x          a mac or an amiga running minix
  1726.      _m_i_p_s           another mips CPU
  1727.      _m_u_l_t_i_m_a_x       an Encore Computer Corp. Multimax (32000 based)
  1728.      _n_e_w_s           a Sony NEWS 800 or 1700 workstation
  1729.      _n_e_w_s__m_i_p_s      a NeWS machine with mips CPU
  1730.      _n_d_5_0_0          a Norsk Data ND 500/5000 running Ndix
  1731.      _n_s_3_2_0_0_0        an NS32000 CPU machine
  1732.      _n_e_x_t           a NeXT computer
  1733.      _p_a_r_a_g_o_n        an intel paragon running osf1
  1734.      _p_f_a_5_0          a PFU/Fujitsu A-xx computer
  1735.      _p_s_2            an IBM PS/2, running aix
  1736.      _p_t_x            a Sequent Symmetry running DYNIX/ptx (386/486 based)
  1737.      _p_y_r_a_m_i_d        a Pyramid Technology computer (of any flavor)
  1738.      _r_s_6_0_0_0         an IBM RS6000, running aix
  1739.      _r_t             an IBM PC/RT, running BSD (AOS 4.3) or mach
  1740.      _r_t_p_c           an IBM PC/RT, running aix
  1741.      _s_c_o_3_8_6         an Intel 386, running SCO
  1742.      _s_t_e_l_l_a_r        a stellar running stellix
  1743.      _s_u_n            a Sun workstation of none of the above types
  1744.      _s_u_n_2           a Sun Microsystems series 2 workstation (68010 based)
  1745.      _s_u_n_3           a Sun Microsystems series 3 workstation (68020 based)
  1746.      _s_u_n_3_8_6_i        a Sun Microsystems 386i workstation (386 based)
  1747.      _s_u_n_4           a Sun Microsystems series 4 workstation (SPARC based)
  1748.      _s_y_m_m_e_t_r_y       a Sequent Symmetry running DYNIX 3 (386/486 based)
  1749.      _s_y_s_V_8_8         a Motorola MPC running System V/88 R32V2 (SVR3/88100 based)
  1750.      _t_a_h_o_e          a tahoe running 4BSD
  1751.      _t_e_k_4_3_0_0        a Tektronix 4300 running UTek (BSD 4.2 / 68020 based)
  1752.      _t_e_k_X_D_8_8        a Tektronix XD88/10 running UTekV 3.2e (SVR3/88100 based)
  1753.      _t_i_t_a_n          an Stardent Titan
  1754.      _u_n_i_x_p_c         an UNIX/PC running SVR1 att7300 aka att3b1
  1755.      _v_a_x            a Digital Equipment Corp. Vax (of any flavor)
  1756.      _v_i_s_t_r_a_8_0_0      a Stardent Vistra 800 running SVR4
  1757.      _V_M_S-_P_O_S_I_X      a vax? running VMS/POSIX
  1758.  
  1759.      (The names of the machines are usually trade marks of the corresponding
  1760.      companies.)
  1761.  
  1762.      _T_c_s_h also initializes the shell variables _u_i_d and _g_i_d to the value of the
  1763.      current real user ID/GID.  This is useful for telling what user/group the
  1764.      shell is running as. Under Domain/OS _t_c_s_h will also set _o_i_d indicating
  1765.      the current real organization id.
  1766.  
  1767. 22220000.... CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS FFFFOOOORRRR DDDDEEEEBBBBUUUUGGGGGGGGIIIINNNNGGGG
  1768.      Only two such commands are available at this point, both concerned with
  1769.      testing termcap entries.
  1770.      _t_e_l_l_t_c tells you, politely, what _t_c_s_h thinks of your terminal, and _s_e_t_t_c
  1771.      `cap' `value' tells _t_c_s_h to believe that the termcap capability `cap' (
  1772.      as defined in _t_e_r_m_c_a_p(5) ) has the value `value'. No checking for sanity
  1773.      is performed, so beware of improper use.
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.                                                                        PPPPaaaaggggeeee 22227777
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1787.  
  1788.  
  1789.  
  1790.      Note that Concept terminal users may have to "settc xn no" to get proper
  1791.      wrapping at the rightmost column.
  1792.  
  1793. 22221111.... SSSSEEEEAAAARRRRCCCCHHHHIIIINNNNGGGG FFFFOOOORRRR TTTTHHHHEEEE VVVVIIIISSSSUUUUAAAALLLL HHHHIIIISSSSTTTTOOOORRRRYYYY
  1794.      Four new editor functions have been added in emacs mode: Two of them,
  1795.      history-search-backward, bound to M-p (and M-P), and history-search-
  1796.      forward, bound to M-n (and M-N), implement a conventional search
  1797.      mechanism, while the other two, i-search-back and i-search-fwd, both
  1798.      unbound by default, implement the emacs-style incremental search.
  1799.  
  1800.      History-search-backward (history-search-forward) searches backward
  1801.      (forward) through the history list for previous (next) occurrence of the
  1802.      beginning of the input buffer as a command.  That is, if the user types:
  1803.  
  1804.            > echo foo
  1805.            foo
  1806.            > ls
  1807.            filea     fileb
  1808.            > echo bar
  1809.            bar
  1810.            >
  1811.  
  1812.      and then types "echo<ESC>p", the shell will place "echo bar" in the
  1813.      editing buffer.  If another _M-_p was entered, the editing buffer would
  1814.      change to "echo foo".  This capability is compatible with the plain
  1815.      visual history; if the user were to then enter ^_P the editing buffer
  1816.      would be changed to "ls". The pattern used to search through the history
  1817.      is defined by the characters from the beginning of the line up to the
  1818.      current cursor position and may contain a shell globbing pattern.
  1819.      Successive history searches use the same pattern.
  1820.  
  1821.      When the incremental search functions are used, a prompt - "bck:" or
  1822.      "fwd:", depending on the chosen direction - appears, and characters typed
  1823.      are appended to the search pattern.  The matching command line is placed
  1824.      in the editing buffer, with the cursor positioned at the point where the
  1825.      pattern was found (the incremental search will also do searching within a
  1826.      command line).  If the search fails, the terminal bell is rung, and the
  1827.      ':' in the prompt is changed to '?'.
  1828.  
  1829.      If these functions are bound to single characters, and one of those is
  1830.      typed again during the incremental search, the search continues in the
  1831.      corresponding direction, with the pattern unchanged; if the previous
  1832.      search failed, this will also cause it to "wrap around" the history list.
  1833.      Finally, the following characters also have a special meaning during the
  1834.      search:
  1835.  
  1836.            Delete      (or any character bound to _b_a_c_k_w_a_r_d-_d_e_l_e_t_e-_c_h_a_r)
  1837.                        Undo the effect of the last character typed,
  1838.                        deleting a character from the pattern if appropriate.
  1839.            ^G          Abort the search, back to the last successful one
  1840.                        if previous search failed, otherwise entire search.
  1841.            ^W          Append the rest of the current word to the pattern.
  1842.  
  1843.  
  1844.  
  1845.                                                                        PPPPaaaaggggeeee 22228888
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1853.  
  1854.  
  1855.  
  1856.            ESC         Terminate the search, leaving current line in buffer.
  1857.  
  1858.      Any other character, that isn't bound to _s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_d, terminates
  1859.      the search, leaving the current command line in the editing buffer, after
  1860.      which _t_c_s_h interprets the character as if it was normal input - notably
  1861.      _R_e_t_u_r_n will cause the current command line to be executed.
  1862.  
  1863.      In vi mode "vi-search-fwd" (bound to '/') and "vi-search-back" (bound to
  1864.      '?') can be used to search the visual history. In command mode '/' or '?'
  1865.      followed by a shell pattern, searches the visual history for the pattern.
  1866.      The pattern can be terminated either with a _R_e_t_u_r_n, in which case the
  1867.      matched history event is placed in the command buffer or an _E_s_c_a_p_e, in
  1868.      which case the matched history event is executed. If no history event
  1869.      matches the shell pattern then the bell is rung.
  1870.  
  1871. 22222222.... BBBBUUUUIIIILLLLTTTTIIIINNNN WWWWHHHHIIIICCCCHHHH((((1111))))////WWWWHHHHEEEERRRREEEE CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  1872.      There is now a builtin version of the _w_h_i_c_h(1) command.  The builtin
  1873.      version is just like the original, except that it correctly reports
  1874.      aliases peculiar to this _t_c_s_h, and builtin commands.  The only other
  1875.      difference is that the builtin runs somewhere between 10 and 100 times
  1876.      faster.  There is also a key-function interface to this command: the
  1877.      _w_h_i_c_h-_c_o_m_m_a_n_d function (normally bound to M-?), can be used anywhere on
  1878.      the command line, and will in effect do a 'which' on the command name.
  1879.  
  1880.      Similarly where will report all known instances of the command: aliases,
  1881.      builtins, as well as all references in the path.
  1882.  
  1883. 22223333.... RRRREEEESSSSTTTTAAAARRRRTTTTIIIINNNNGGGG AAAA SSSSTTTTOOOOPPPPPPPPEEEEDDDD EEEEDDDDIIIITTTTOOOORRRR
  1884.      There is another new editor function: run-fg-editor, which is bound to
  1885.      _M-^_Z.  When typed, it saves away the current input buffer, and looks for
  1886.      a stopped job with a name equal to the file name part (last element) of
  1887.      either the EDITOR or VISUAL environment variables (if not defined, the
  1888.      default names are "ed" and "vi" respectively).  If such a job is found,
  1889.      then it is restarted as if "fg %_n_a_m_e" had been typed.  This is used to
  1890.      toggle back and forth between an editor and the shell easily.  Some
  1891.      people bind this function to ^_Z so they can do this even more easily.
  1892.  
  1893. 22224444.... SSSSTTTTAAAATTTTUUUUSSSS LLLLIIIINNNNEEEE SSSSUUUUPPPPPPPPOOOORRRRTTTT
  1894.      _T_c_s_h has a new builtin called _e_c_h_o_t_c that allows the user to access the
  1895.      terminal capabilities from the command line, similar to the system V
  1896.      _t_p_u_t(1).
  1897.  
  1898.            > echotc home
  1899.  
  1900.      Places the cursor at the home position and
  1901.  
  1902.            > echotc cm 3 10
  1903.  
  1904.      places the cursor at column 3 row 10.  This command replaces the _e_l and
  1905.      _s_l variables that used contain the escape sequences to begin and end
  1906.      status line changes. The command:
  1907.  
  1908.  
  1909.  
  1910.  
  1911.                                                                        PPPPaaaaggggeeee 22229999
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1919.  
  1920.  
  1921.  
  1922.            > echo $sl this is a test $el
  1923.  
  1924.      is replaced by:
  1925.  
  1926.            > echotc ts 0; echo "this is a test"; echotc fs
  1927.  
  1928.      In addition _e_c_h_o_t_c understands the arguments _b_a_u_d, _l_i_n_e_s, _c_o_l_s, _m_e_t_a, and
  1929.      _t_a_b_s And prints the baud rate, the number of lines and columns, and "yes"
  1930.      or "no" depending if the terminal has tabs or a meta key.  This can be
  1931.      useful in determining how terse the output of commands will be depending
  1932.      on the baud rate, or setting limits to commands like history to the
  1933.      highest number so that the terminal does not scroll:
  1934.  
  1935.            > set history=`echotc lines`
  1936.            > @ history--
  1937.  
  1938.      Note: Termcap strings may contain wildcard characters, and echoing them
  1939.      will not work correctly. The suggested method of setting shell variables
  1940.      to terminal capability strings is using double quotes, as in the
  1941.      following example that places the date in the status line:
  1942.  
  1943.            > set tosl="`echotc ts 0`"
  1944.            > set frsl="`echotc fs`"
  1945.            > echo -n "$tosl";date; echo -n "$frsl"
  1946.  
  1947.      _E_c_h_o_t_c accepts two flags. The flag -_v enables verbose messages and the
  1948.      flag -_s ignores any errors and returns the empty string if the capability
  1949.      is not found.
  1950.  
  1951.  
  1952. 22225555.... EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN OOOOFFFF AAAA CCCCOOOOMMMMMMMMAAAANNNNDDDD AAAAFFFFTTTTEEEERRRR CCCCHHHHAAAANNNNGGGGIIIINNNNGGGG TTTTHHHHEEEE CCCCUUUURRRRRRRREEEENNNNTTTT WWWWOOOORRRRKKKKIIIINNNNGGGG DDDDIIIIRRRREEEECCCCTTTTOOOORRRRYYYY
  1953.      _T_c_s_h now supports a special alias, _c_w_d_c_m_d, which if set holds a command
  1954.      that will be executed after changing the value of $cwd.  For example, if
  1955.      the user is running on an X window system _x_t_e_r_m(_1), and a re-parenting
  1956.      window manager that supports title bars such as _t_w_m(_1) _a_n_d _h_a_s _d_o_n_e:
  1957.  
  1958.            > alias cwdcmd  'echo -n "^[]2;${HOST}:$cwd ^G"'
  1959.  
  1960.      then the shell will change the title of the running _x_t_e_r_m(_1) to be the
  1961.      name of the host, a colon, and the full current working directory. A more
  1962.      fancy way to do that is:
  1963.  
  1964.            > alias cwdcmd 'echo -n "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"'
  1965.  
  1966.      This will put the hostname and working directory on the title bar but
  1967.      only the hostname in the icon manager menu.  Note that if a user defines
  1968.      _c_w_d_c_m_d to contain a _c_d, _p_u_s_h_d, or _p_o_p_d, command, an infinite loop may
  1969.      result.  In this case, it is the author's opinion that said user will get
  1970.      what he deserves.
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.                                                                        PPPPaaaaggggeeee 33330000
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  1985.  
  1986.  
  1987.  
  1988. 22226666.... NNNNAAAATTTTIIIIVVVVEEEE LLLLAAAANNNNGGGGUUUUAAAAGGGGEEEE SSSSYYYYSSSSTTTTEEEEMMMM
  1989.      _T_c_s_h is eight bit clean (if so compiled, see the description of the
  1990.      _v_e_r_s_i_o_n shell variable below), and will thus support character sets
  1991.      needing this capability.  The _t_c_s_h support for NLS differs depending on
  1992.      whether it was compiled to use the system's NLS (again, see the _v_e_r_s_i_o_n
  1993.      variable) or not.  In either case, the default for character
  1994.      classification (i.e. which characters are printable, etc.) and sorting is
  1995.      7-bit ascii, and any setting or unsetting of the LANG or LC_CTYPE
  1996.      environment variables will cause a check for possible changes in these
  1997.      respects.
  1998.  
  1999.      When using the system's NLS, the _s_e_t_l_o_c_a_l_e C library function will be
  2000.      called to determine appropriate character classification and sorting -
  2001.      this function will typically examine the LANG and LC_CTYPE variables for
  2002.      this purpose (refer to the system documentation for further details).
  2003.      Otherwise, NLS will be simulated, by assuming that the ISO 8859-1
  2004.      character set is used whenever either of the LANG and LC_CTYPE variables
  2005.      are set, regardless of their values. Sorting is not affected for the
  2006.      simulated NLS.
  2007.  
  2008.      In addition, with both real and simulated NLS, all printable characters
  2009.      in the range \200-\377, i.e. those that have M-<char> bindings, are
  2010.      automatically rebound to _s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_d (the corresponding binding
  2011.      for the escape+<char> sequence, if any, is left alone).  This automatic
  2012.      rebinding is inhibited if the NOREBIND environment variable is set - this
  2013.      may be useful for the simulated NLS, or a primitive real NLS which
  2014.      assumes full ISO 8859-1 (otherwise all M-<char> bindings in the range
  2015.      \240-\377 will effectively be undone in these cases).  Explicitly
  2016.      rebinding the relevant keys, using _b_i_n_d_k_e_y, is of course still possible.
  2017.  
  2018.      Unknown characters (i.e. those that are neither printable nor control
  2019.      characters) will be printed using the \nnn format.  If the tty is not in
  2020.      8 bit mode, other 8 bit characters will be printed by converting them to
  2021.      ascii and using standout mode.  _T_c_s_h will never change the 7/8 bit mode
  2022.      of the tty, and will track user-initiated settings for this - i.e. it may
  2023.      be necessary for NLS users (or, for that matter, those that want to use a
  2024.      Meta key) to explicitly set the tty in 8 bit mode through the appropriate
  2025.      _s_t_t_y(1) command in e.g. the .login file.
  2026.  
  2027. 22227777.... AAAAUUUUTTTTOOOOMMMMAAAATTTTIIIICCCC PPPPRRRROOOOCCCCEEEESSSSSSSS TTTTIIIIMMMMEEEE RRRREEEEPPPPOOOORRRRTTTTIIIINNNNGGGG
  2028.      Automatic process time reporting is a feature that exists in _c_s_h, but it
  2029.      is usually not documented. In addition _t_c_s_h provides a slightly enriched
  2030.      syntax. Process time reports are controlled via the _t_i_m_e shell variable.
  2031.      The first word of the _t_i_m_e variable indicates the minimum number of CPU
  2032.      seconds the process has to consume before a time report is produced. The
  2033.      optional second word controls the format of the report.  The following
  2034.      sequences are available for the format specification:
  2035.  
  2036.            %U          The time the process spent in user mode
  2037.                        in cpu seconds.
  2038.            %S          The time the process spent in kernel mode
  2039.                        in cpu seconds.
  2040.  
  2041.  
  2042.  
  2043.                                                                        PPPPaaaaggggeeee 33331111
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2051.  
  2052.  
  2053.  
  2054.            %E          The elapsed time in seconds.
  2055.            %P          The CPU percentage computed as (%U + %S) / %E.
  2056.  
  2057.      The following sequences are supported only in systems that have the BSD
  2058.      resource limit functions.
  2059.  
  2060.            %W          Number of times the process was swapped.
  2061.            %X          The average amount in (shared) text space used
  2062.                        in Kbytes.
  2063.            %D          The average amount in (unshared) data/stack
  2064.                        space used in Kbytes.
  2065.            %K          The total space used (%X + %D) in Kbytes.
  2066.            %M          The maximum memory the process had in use at
  2067.                        any time in Kbytes.
  2068.            %F          The number of major page faults (page needed to
  2069.                        be brought from disk).
  2070.            %R          The number of minor page faults.
  2071.            %I          The number of input operations.
  2072.            %O          The number of output operations.
  2073.            %r          The number of socket messages received.
  2074.            %s          The number of socket messages sent.
  2075.            %k          The number of signals received.
  2076.            %w          Number of voluntary context switches (waits).
  2077.            %c          Number of involuntary context switches.
  2078.  
  2079.      The default time format is "%Uu %Ss %E %P %X+%Dk %I+%Oio %Fpf+%Ww" for
  2080.      systems that support resource usage reporting and "%Uu %Ss %E %P" for
  2081.      systems that do not.
  2082.  
  2083.      For Sequent's DYNIX/ptx %X, %D, %K, %r and %s are not supported.
  2084.      However, the following additional sequences are available.
  2085.  
  2086.            %Y          The number of system calls performed.
  2087.            %Z          The number of pages which are zero-filled
  2088.                        on demand.
  2089.            %i          The number of times a process' resident
  2090.                        set size was increased by the kernel.
  2091.            %d          The number of times a process' resident
  2092.                        set size was decreased by the kernel.
  2093.            %l          The number of read system calls performed.
  2094.            %m          The number of write system calls performed.
  2095.            %p          the number of reads from raw disk devices.
  2096.            %q          the number of writes to raw disk devices.
  2097.  
  2098.      The default time format for Sequent's DYNIX/ptx is "%Uu %Ss $E %P %I+%Oio
  2099.      %Fpf+%Ww". Also note that the CPU percentage can be higher than 100% on
  2100.      multi-processors.
  2101.  
  2102. 22228888.... OOOOSSSS////DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNTTTT BBBBUUUUIIIILLLLTTTTIIIINNNN SSSSUUUUPPPPPPPPOOOORRRRTTTT
  2103.      _T_R_A_N_S_P_A_R_E_N_T _C_O_M_P_U_T_I_N_G _F_A_C_I_L_I_T_Y
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.                                                                        PPPPaaaaggggeeee 33332222
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2117.  
  2118.  
  2119.  
  2120.      On systems that support TCF (aix-ibm370, aix-ps2) the following builtins
  2121.      have been added:
  2122.  
  2123.      ggggeeeettttssssppppaaaatttthhhh  Print the current system execution path.
  2124.  
  2125.      sssseeeettttssssppppaaaatttthhhh LLLLOOOOCCCCAAAALLLL||||<<<<ssssiiiitttteeee>>>>||||<<<<ccccppppuuuu>>>> ............
  2126.                Set the current execution path.
  2127.  
  2128.  
  2129.      ggggeeeettttxxxxvvvveeeerrrrssss  Print the current experimental version prefix.
  2130.  
  2131.  
  2132.      sssseeeettttxxxxvvvveeeerrrrssss [[[[<<<<ssssttttrrrriiiinnnngggg>>>>]]]]
  2133.                If the optional string is ommited, any experimental version
  2134.                prefix is removed.  Otherwise the experimental version prefix
  2135.                is set to string.
  2136.  
  2137.  
  2138.      mmmmiiiiggggrrrraaaatttteeee [[[[----<<<<ssssiiiitttteeee>>>>]]]] <<<<ppppiiiidddd>>>>||||%%%%<<<<jjjjoooobbbbiiiidddd>>>> ............
  2139.      mmmmiiiiggggrrrraaaatttteeee ----<<<<ssssiiiitttteeee>>>>
  2140.                The first form migrates the process or job to the site
  2141.                specified or the default site determined by the system path.
  2142.                The second form, is equivalent to 'migrate -<site> $$', i.e.
  2143.                migrates the current process to the site specified. Note:
  2144.                migrating _t_c_s_h itself can cause unexpected behavior, since the
  2145.                shell does not like to lose its tty.
  2146.  
  2147.  
  2148.      In addition, jobs will print the site the job is executing.
  2149.  
  2150.      _D_o_m_a_i_n/_O_S _S_u_p_p_o_r_t
  2151.  
  2152.      iiiinnnnlllliiiibbbb <<<<sssshhhhaaaarrrreeeedddd----lllliiiibbbbrrrraaaarrrryyyy>>>> ............
  2153.           Inlib adds shared libraries to the current environment. There is no
  2154.           way to remove them...
  2155.  
  2156.      rrrroooooooottttnnnnooooddddeeee ////////<<<<nnnnooooddddeeeennnnaaaammmmeeee>>>>
  2157.           Change the name of the current rootnode. From now on, / will resolve
  2158.           to //<_r_o_o_t_n_o_d_e>
  2159.  
  2160.      vvvveeeerrrr [[[[<<<<ssssyyyyssssttttyyyyppppeeee>>>>]]]] [[[[<<<<ccccoooommmmmmmmaaaannnndddd>>>>]]]]
  2161.           Without arguments, print $_S_Y_S_T_Y_P_E; with the <_s_y_s_t_y_p_e> provided, set
  2162.           _S_Y_S_T_Y_P_E to the one provided. Valid systypes are bsd4.3 and sys5.3.
  2163.           If a <_c_o_m_m_a_n_d> is argument is given, then <_c_o_m_m_a_n_d> is executed
  2164.           under the <_s_y_s_t_y_p_e> specified.
  2165.  
  2166.      _M_a_c_h
  2167.  
  2168.      sssseeeettttppppaaaatttthhhh <<<<ppppaaaatttthhhh----ssssppppeeeecccc>>>> ............
  2169.           XXX: What does it do?
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.                                                                        PPPPaaaaggggeeee 33333333
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2183.  
  2184.  
  2185.  
  2186.      _M_a_s_s_c_o_m_p/_R_T_U
  2187.  
  2188.      uuuunnnniiiivvvveeeerrrrsssseeee <<<<uuuunnnniiiivvvveeeerrrrsssseeee----ssssppppeeeecccc>>>> ............
  2189.           Sets the current universe to the specified parameter.
  2190.  
  2191.      _C_o_n_v_e_x/_O_S
  2192.  
  2193.      wwwwaaaarrrrpppp [[[[<<<<uuuunnnniiiivvvveeeerrrrsssseeee----ssssppppeeeecccc>>>>]]]] ............
  2194.           Without arguments prints the current value of the universe. With a
  2195.           universe argument it sets the current universe to the value of the
  2196.           argument.
  2197.  
  2198.  
  2199. 22229999.... WWWWIIIINNNNDDDDOOOOWWWW SSSSIIIIZZZZEEEE TTTTRRRRAAAACCCCKKKKIIIINNNNGGGG
  2200.      On systems that support SIGWINCH or SIGWINDOW, _t_c_s_h adapts to window
  2201.      resizing automatically and adjusts the environment variables LINES and
  2202.      COLUMNS if set. Also if the environment variable TERMCAP contains li#,
  2203.      and co# fields, these will be adjusted also to reflect the new window
  2204.      size.
  2205.  
  2206.  
  2207. 33330000.... IIIINNNNPPPPUUUUTTTT FFFFIIIILLLLEEEESSSS
  2208.      On startup _t_c_s_h will try to source /_e_t_c/_c_s_h._c_s_h_r_c and then /_e_t_c/_c_s_h._l_o_g_i_n
  2209.      if the shell is a login shell. Then it will try to source $_H_O_M_E/._t_c_s_h_r_c
  2210.      and then $_H_O_M_E/._c_s_h_r_c if $_H_O_M_E/._t_c_s_h_r_c is not found. Then it will source
  2211.      $_H_O_M_E/._l_o_g_i_n if the shell is a login shell.  On exit _t_c_s_h will source
  2212.      first /_e_t_c/_c_s_h._l_o_g_o_u_t and then $_H_O_M_E/._l_o_g_o_u_t if the shell was a login
  2213.      shell.
  2214.  
  2215.      Note: On _c_o_n_v_e_x_o_s, _s_t_e_l_l_i_x and _I_N_T_E_L the names of the system default
  2216.      files are /_e_t_c/_c_s_h_r_c , /_e_t_c/_l_o_g_i_n and /_e_t_c/_l_o_g_o_u_t respectively. On the
  2217.      NeXT the names are also different:  /_e_t_c/_c_s_h_r_c._s_t_d , /_e_t_c/_l_o_g_i_n._s_t_d and
  2218.      /_e_t_c/_l_o_g_o_u_t._s_t_d . Finally on _i_r_i_x, _A/_U_X, _A_M_I_X, and the _c_r_a_y only the file
  2219.      /_e_t_c/_c_s_h_r_c is executed (instead of /_e_t_c/_c_s_h._l_o_g_i_n ) if the shell is a
  2220.      login shell.
  2221.  
  2222.  
  2223. 33331111.... CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS
  2224.      This section describes options that are either undocumented in _c_s_h (*) or
  2225.      present only in _t_c_s_h. (+)
  2226.  
  2227.  
  2228.      -_d  Force load of directory stack. (+)
  2229.  
  2230.      -_D_n_a_m_e[=_v_a_l_u_e]
  2231.          Set environment variable name to value. (Domain/OS only) (+)
  2232.  
  2233.      -_F  Use fork() instead of vfork() to spawn processes. (Convex/OS only)
  2234.          (+)
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.                                                                        PPPPaaaaggggeeee 33334444
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2249.  
  2250.  
  2251.  
  2252.      -_l  Make _t_c_s_h behave like a login shell.  (+)
  2253.  
  2254.      -_m  Allow reading of a .cshrc that does not belong to the effective user.
  2255.          Newer versions of _s_u(_1) can pass that to the shell. (some versions of
  2256.          csh have it) (+*)
  2257.  
  2258.      -_q  Make the shell accept SIGQUIT, and behave when it is used under a
  2259.          debugger.  Job control is disabled. (*)
  2260.  
  2261.  
  2262. 33332222.... HHHHIIIISSSSTTTTOOOORRRRYYYY AAAANNNNDDDD VVVVAAAARRRRIIIIAAAABBBBLLLLEEEE MMMMOOOODDDDIIIIFFFFIIIIEEEERRRR EEEENNNNHHHHAAAANNNNCCCCEEEEMMMMEEEENNNNTTTTSSSS
  2263.      _T_c_s_h accepts more than one variable modifier per variable or history
  2264.      expansion. For example, in _c_s_h(_1) the following command expands to:
  2265.  
  2266.            % set a=/usr/local/foo.bar.baz
  2267.            % echo $a:t:r:e
  2268.            foo.bar.baz:r:e
  2269.  
  2270.      but in _t_c_s_h:
  2271.  
  2272.            > set a=/usr/local/foo.bar.baz
  2273.            > echo $a:t:r:e
  2274.            bar
  2275.  
  2276.      This bug fix changes slightly the input syntax of _c_s_h, causing
  2277.      expressions of the form to have invalid syntax:
  2278.  
  2279.            > set a=/usr/local/foo.bar.baz
  2280.            > echo $a:t:$cwd
  2281.            Unknown variable modifier.
  2282.  
  2283.      Which is the correct behavior, since after the second colon a variable
  2284.      modifier is expected and `$' is found.  Expressions like this should be
  2285.      re-written as:
  2286.  
  2287.            > echo ${a:t}:$cwd
  2288.  
  2289.      _T_c_s_h can also use the _l and _u modifiers to change the case of a word.
  2290.  
  2291.      Also _t_c_s_h has an additional : character _a which applies the current
  2292.      modifier multiple times in the same word, in the same way _g applies the
  2293.      modifier once in each word:
  2294.  
  2295.            > set foo=(a:b:c d:e:f)
  2296.            > echo $foo:s/:/ /
  2297.            a b:c d:e:f
  2298.            > echo $foo:gs/:/ /
  2299.            a b:c d e:f
  2300.            > echo $foo:as/:/ /
  2301.            a b c d:e:f
  2302.            > echo $foo:ags/:/ /
  2303.            a b c d e f
  2304.  
  2305.  
  2306.  
  2307.                                                                        PPPPaaaaggggeeee 33335555
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2315.  
  2316.  
  2317.  
  2318.      The _c_s_h expert will notice in the above example another _t_c_s_h enhancement.
  2319.      In _c_s_h the _s modifier does not work for variables.
  2320.  
  2321.      The _a character works correctly with other modifiers, for example:
  2322.  
  2323.            > echo $host
  2324.            tesla.ee.cornell.edu
  2325.            > echo $host:r
  2326.            tesla.ee.cornell
  2327.            > echo $host:ar
  2328.            tesla
  2329.  
  2330.      _N_o_t_e: The _a character causes a modifier to be applied to a word
  2331.      repeatedly until the modifier fails. This can lead to an infinite loop in
  2332.      the current implementation when used with the _s modifier. For example
  2333.      :as/f/ff/ will never terminate. This behavior might change in the future.
  2334.  
  2335.  
  2336. 33333333.... PPPPRRRROOOOGGGGRRRRAAAAMMMMMMMMAAAABBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEETTTTIIIIOOOONNNN
  2337.      The new _c_o_m_p_l_e_t_e and _u_n_c_o_m_p_l_e_t_e builtins can change the behavior of the
  2338.      listing and file-completion in tcsh. For example some commands like _c_d,
  2339.      _p_u_s_h_d, _p_o_p_d , _m_k_d_i_r(_1), _r_m_d_i_r(_1) accept only directories as arguments.
  2340.      Normally _t_c_s_h when asked to list or complete an argument for those
  2341.      commands takes into account all the files and not only directories. This
  2342.      behavior can be changed by telling _t_c_s_h that these commands only expect
  2343.      directory arguments:
  2344.  
  2345.      > complete cd 'n/*/d/'
  2346.  
  2347.      The above command tells _t_c_s_h to complete any following word with a
  2348.      directory.
  2349.  
  2350.      The syntax for the _c_o_m_p_l_e_t_e and _u_n_c_o_m_p_l_e_t_e builtins is:
  2351.  
  2352.      _c_o_m_p_l_e_t_e [<_c_o_m_m_a_n_d-_p_a_t_t_e_r_n> [<_c_o_m_p_l_e_t_i_o_n-_a_r_g_u_m_e_n_t>]]
  2353.      _u_n_c_o_m_p_l_e_t_e <_c_o_m_m_a_n_d-_p_a_t_t_e_r_n>
  2354.  
  2355.      Completion arguments are matched in turn from left to right and the first
  2356.      successful match is returned.  There are three different completion
  2357.      arguments, modeled after the _s_e_d(_1) substitute command and they are of
  2358.      the form:
  2359.  
  2360.      <<<<ccccoooommmmmmmmaaaannnndddd>>>>////<<<<mmmmaaaattttcccchhhh----ppppaaaatttttttteeeerrrrnnnn>>>>////<<<<ccccoooommmmpppplllleeeetttteeee----aaaaccccttttiiiioooonnnn>>>>////[[[[<<<<ssssuuuuffffffffiiiixxxx>>>>||||////]]]]
  2361.  
  2362.      The five commands available are:
  2363.  
  2364.      pppp    This specifies position-dependent completion. The matching pattern
  2365.           is a numeric range similar to the one used to index shell variables.
  2366.           If the current word is within that range, then the completion action
  2367.           is taken. For example:
  2368.  
  2369.           > complete cd 'p/1/d/'
  2370.  
  2371.  
  2372.  
  2373.                                                                        PPPPaaaaggggeeee 33336666
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2381.  
  2382.  
  2383.  
  2384.           completes only the first argument of 'cd' with a directory. A
  2385.           special useful case of position-dependent completion can be used to
  2386.           disambiguate command completion:
  2387.  
  2388.           > set autolist
  2389.           > co[TAB]
  2390.           complete compress
  2391.           > complete -co* 'p/0/(complete)/'
  2392.           > co[TAB]
  2393.           > complete _
  2394.  
  2395.           The above command tells the completion mechanism to match any word
  2396.           on position 0, that matches the pattern _c_o* . If a match is found,
  2397.           the word is replaced with the literal pattern "complete". The
  2398.           leading '-' in the pattern signifies that this completion is to be
  2399.           used only with ambiguous commands.
  2400.  
  2401.      nnnn,,,,NNNN  This command specifies next-word completions. The matching pattern
  2402.           in this case is a shell pattern that must match the previous word on
  2403.           the command line (_n), or the word before that (_N). For example:
  2404.  
  2405.           > complete find 'n/-user/u/'
  2406.  
  2407.           Here the argument of the find command which follows the -user
  2408.           argument is completed from the list of users.
  2409.  
  2410.      cccc,,,,CCCC  The last two completion commands complete the current word. The
  2411.           matching pattern in this case must match the prefix of the current
  2412.           word. For example:
  2413.  
  2414.           > complete cc 'c/-I/d/'
  2415.  
  2416.           completes the word containing -I from the list of directories.
  2417.           While ````cccc'''' discards the matched prefix, ````CCCC'''' keeps it and applies the
  2418.           completion using it.
  2419.  
  2420.  
  2421.      So far the _d, _u, (_w_o_r_d) completion actions have been mentioned. The
  2422.      complete list of completion actions are:
  2423.  
  2424.            C           Complete completions
  2425.            S           Complete signals
  2426.            a           Complete aliases
  2427.            b           Complete binding
  2428.            c           Complete command
  2429.            d           Complete directory
  2430.            e           Complete environment variable
  2431.            f           Complete file or path component
  2432.            j           Complete jobs
  2433.            l           Complete limits
  2434.            n           Complete nothing
  2435.            p           Complete files using the supplied pathname prefix
  2436.  
  2437.  
  2438.  
  2439.                                                                        PPPPaaaaggggeeee 33337777
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2447.  
  2448.  
  2449.  
  2450.            s           Complete shell variable
  2451.            t           Complete non directory `text' filename
  2452.            v           Complete any variable
  2453.            u           Complete username
  2454.            x           Explain what argument when listing is requested.
  2455.            $var        Complete using words from variable
  2456.            (...)       Complete using words from list
  2457.            `...`       Complete evaluating word list from the output of command.
  2458.  
  2459.      All the above completion actions, except _x, $_v_a_r, (...), and `...` can
  2460.      have an additional shell pattern which must match the files to be
  2461.      completed, separated from the action with a ':'. The '_x' completion
  2462.      action instead expects the explanation string specified this way.  For
  2463.      example, in the C compiler, it makes sense to complete only files that
  2464.      the compiler understands:
  2465.  
  2466.      > complete cc 'n/*/f:*.[cao]/'
  2467.  
  2468.      It is also useful to exclude files from the completion list. Normally
  2469.      _t_c_s_h will expand the following command:
  2470.  
  2471.      > set fignore=(.o)
  2472.      > ls
  2473.      foo.c foo.o
  2474.      > vi f[TAB]
  2475.      > vi foo.c
  2476.      > rm f[TAB]
  2477.      > rm foo.c
  2478.  
  2479.      A better way to do this is to use the _c_o_m_p_l_e_t_e builtin to protect
  2480.      precious files:
  2481.  
  2482.      > complete rm 'n/*/f:^*.{c,h,cc,C,tex,1,man,l,y}/'
  2483.      > ls
  2484.      foo.c foo.o
  2485.      > vi f[TAB]
  2486.      > vi foo.c
  2487.      > rm f[TAB]
  2488.      > rm foo.o
  2489.  
  2490.      Note that _f_i_g_n_o_r_e is not used when a shell pattern is specified in a
  2491.      completion action.
  2492.  
  2493.      Other commands don't expect files as arguments, so the completion builtin
  2494.      can be used to change the list of items to be completed:
  2495.  
  2496.        > complete man      'n/*/c/'            # complete commands
  2497.        > complete which    'n/*/c/'
  2498.        > complete dbx      'p/2/(core)/' 'n/*/c/'
  2499.        > complete alias    'p/1/a/'            # complete aliases
  2500.        > complete set      'p/1/s/'            # complete variables
  2501.        > complete finger   'p/1/u/'            # complete user-names
  2502.  
  2503.  
  2504.  
  2505.                                                                        PPPPaaaaggggeeee 33338888
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2513.  
  2514.  
  2515.  
  2516.      Note that in the _d_b_x example, the positional completion is specified
  2517.      before the next word completion. Since completions are evaluated from
  2518.      left to right, if the next word completion was specified first it would
  2519.      always match and the positional completion would never be executed. This
  2520.      is a common mistake when defining a completion.
  2521.  
  2522.      In some cases the list needs to be customized or dynamically generated.
  2523.  
  2524.      > set hostnames=(prep.ai.mit.edu tesla.ee.cornell.edu)
  2525.      > complete rlogin 'p/1/$hostnames/'
  2526.  
  2527.      Consider a complex example using matching patterns to direct argument
  2528.      dependent completions:
  2529.      > complete find 'n/-fstype/(nfs 4.2)/' 'n/-name/f/' \
  2530.                      'n/-type/(c b d f p l s)/' 'n/-user/u/' 'n/-exec/c/' \
  2531.                      'n/-ok/c/' 'n/-cpio/f/' 'n/-ncpio/f/' 'n/-newer/f/' \
  2532.                      'c/-/(fstype name perm prune type user nouser \
  2533.                            group nogroup size inum atime mtime ctime exec \
  2534.                            ok print ls cpio ncpio newer xdev depth)/' \
  2535.                      'n/*/d/'
  2536.  
  2537.  
  2538.      The words following the -_f_s_t_y_p_e and -_t_y_p_e arguments is to be completed
  2539.      from the lists specified.  The word following the -_n_a_m_e, -_c_p_i_o, -_n_c_p_i_o,
  2540.      and -_n_e_w_e_r arguments are to be completed using files or directory
  2541.      components.  The word following the -_u_s_e_r argument will be completed from
  2542.      the list of user names of the system, and the word following the -_e_x_e_c
  2543.      and -_o_k arguments will be completed from the list of commands.  The
  2544.      fourth line specifies how the current word will be completed if it starts
  2545.      with a -. Note that the pattern of this completion argument refers to the
  2546.      _c_u_r_r_e_n_t word and not to the _p_r_e_v_i_o_u_s word, like before.  Finally the last
  2547.      line in the find completion matches all the remaining cases and requires
  2548.      a directory component.
  2549.  
  2550.      > cd /usr
  2551.      > set autolist
  2552.      > find [TAB]
  2553.      bin/ include/ lib/ local/ man/ src/
  2554.      > find -[TAB]
  2555.      atime   depth   group   mtime   newer   ok      prune   user
  2556.      cpio    exec    inum    name    nogroup perm    size    xdev
  2557.      ctime   fstype  ls      ncpio   nouser  print   type
  2558.      > find -u[TAB]
  2559.      > find -user [TAB]
  2560.      christos root
  2561.      > find -user c[TAB]
  2562.      > find -user christos
  2563.  
  2564.      Another useful feature is to override the default suffix rules.  For
  2565.      example:
  2566.  
  2567.      > complete rcp 'c/*:/f/' 'p/1/$hosts/:'
  2568.  
  2569.  
  2570.  
  2571.                                                                        PPPPaaaaggggeeee 33339999
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2579.  
  2580.  
  2581.  
  2582.      > complete finger 'c/*@/$hosts/' 'p/1/u/@'
  2583.  
  2584.      completes from $hosts appending a `:' and then begins expanding files,
  2585.      where finger expands user-names appending an `@' and then begins
  2586.      expanding hosts.
  2587.  
  2588.      Another exotic example that makes use of dynamic command execution is:
  2589.  
  2590.      > complete talk p/1/'`users | tr " " "\012" | uniq`'/ \
  2591.                 n/\*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/
  2592.  
  2593.      Here we want to get a list of the active users, as an argument to talk,
  2594.      then we want to pick the user, and find his tty...  Note that there is no
  2595.      quoting performed inside the completion patterns.  If the character '/'
  2596.      is used in the matched pattern, then another punctuation character can be
  2597.      used as a separator. The only pattern recognized is $$$$::::<<<<nnnnuuuummmmbbbbeeeerrrr>>>> which is
  2598.      substituted by the n'th word of the current line.
  2599.  
  2600.      Notes:
  2601.  
  2602.      1.   The completion command-patterns are overridden when the internal
  2603.           parsing mechanism determines that the completion is a login name, or
  2604.           a variable.
  2605.  
  2606.      2.   This is an experimental feature and the syntax/behavior may change
  2607.           in future versions.
  2608.  
  2609.  
  2610. FFFFYYYYIIII
  2611.      This shell uses CBREAK mode but takes typed-ahead characters anyway.  You
  2612.      can still use _s_t_t_y(1) to set some of the modes of your terminal (but not
  2613.      bindings).
  2614.  
  2615.      This shell will restore your tty to a sane mode if it appears to return
  2616.      from some command in raw, CBREAK, or noecho mode. This behavior can be
  2617.      changed using _s_e_t_t_y.
  2618.  
  2619. 33334444.... EEEENNNNHHHHAAAANNNNCCCCEEEEDDDD FFFFIIIILLLLEEEE IIIINNNNQQQQUUUUIIIIRRRRIIIIEEEESSSS
  2620.      _C_s_h allows the following file inquiries that can appear as primitive
  2621.      operands in expressions. They are for the form -_l <_f_i_l_e_n_a_m_e>.
  2622.  
  2623.            r           read access
  2624.            w           write access
  2625.            x           execute access
  2626.            e           existence
  2627.            o           ownership
  2628.            z           zero size
  2629.            f           plain file
  2630.            d           directory
  2631.            l           symbolic link *
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.                                                                        PPPPaaaaggggeeee 44440000
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2645.  
  2646.  
  2647.  
  2648.      _T_c_s_h defines also the following:
  2649.  
  2650.            c           character special file
  2651.            b           block special file
  2652.            p           named pipe (fifo) *
  2653.            u           set-user-ID bit is set
  2654.            g           set-group-ID bit is set
  2655.            k           sticky bit is set
  2656.            s           the file is non-zero size.
  2657.            t           open file descriptor for terminal device [a number]
  2658.            S           socket special file *
  2659.            X           executable in the path or shell builtin
  2660.  
  2661.  
  2662.      Notes: On systems without the file types indicated by * the file inquiry
  2663.      operands return false.
  2664.  
  2665.      If tcsh is compiled for POSIX [i.e. POSIX is defined in config.h], then
  2666.      the result of test is based on the permission bits of the file and not on
  2667.      the result of the _a_c_c_e_s_s(_2) system call. I.e. if you mount a file system
  2668.      read-only, and test -w a file, then the test will succeed in POSIX mode,
  2669.      if the permissions of the file allow writing.
  2670.  
  2671. 33335555.... RRRREEEEAAAADDDDOOOONNNNLLLLYYYY VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
  2672.      _T_c_s_h allows defining variables as readonly. Such variables cannot be
  2673.      cleared or modified. E.g.
  2674.  
  2675.            > set -r x=(1 2 3)
  2676.            > unset x
  2677.            unset: $x is read-only.
  2678.            > set x=5
  2679.            set: $x is read-only.
  2680.            > set -r x=5
  2681.            set: $x is read-only.
  2682.            > echo $x
  2683.            1 2 3
  2684.  
  2685.      In addition 'set -r' will list only the readonly variables.
  2686.  
  2687. 33336666.... IIIIMMMMPPPPLLLLIIIICCCCIIIITTTT CCCCDDDD
  2688.      If the variable _i_m_p_l_i_c_i_t_c_d is set, _t_c_s_h will treat directory names typed
  2689.      as commands as though they were requests to change to that directory. If
  2690.      _i_m_p_l_i_c_i_t_c_d is set to _v_e_r_b_o_s_e , the change of directory will be echoed to
  2691.      the output.  Implicit cd will not be performed when executing non-
  2692.      interactive shell scripts, or for command strings of more than one word.
  2693.      Changing directory has precedence over executing a like-named command,
  2694.      but is done after any alias substitution. Tilde (~) and variable
  2695.      expansion works as expected.  Some examples:
  2696.  
  2697.            > set implicitcd = verbose
  2698.            > ~
  2699.            cd ~
  2700.  
  2701.  
  2702.  
  2703.                                                                        PPPPaaaaggggeeee 44441111
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2711.  
  2712.  
  2713.  
  2714.            > pwd
  2715.            /usr/people/jill
  2716.            > ..
  2717.            cd ..
  2718.            > pwd
  2719.            /usr/people
  2720.            > set implicitcd
  2721.            > /
  2722.            > pwd
  2723.            /
  2724.            > $HOME/work/; pwd
  2725.            /usr/people/jill/work
  2726.            > alias games /usr/local/games
  2727.            > games; pwd
  2728.            /usr/local/games
  2729.  
  2730.      There are situations where implicitly changing to a directory as opposed
  2731.      to executing a like-named command can be dangerous (e.g., being in an
  2732.      unexpected directory before removing files). For this reason it makes
  2733.      sense to reflect the current working directory in your prompt string if
  2734.      you use this feature.
  2735.  
  2736. EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  2737.      HPATH -- path to look for command documentation
  2738.      LANG -- used to give preferred character environment (see NLS)
  2739.      LC_CTYPE -- used to change only ctype character handling (see NLS)
  2740.      NOREBIND -- inhibits rebinding of printable characters to self-insert-
  2741.      command
  2742.      PATH -- path to look for command execution
  2743.      SHLVL -- current shell level nesting
  2744.      TERM -- used to tell how to handle the terminal
  2745.      LINES -- Number of lines in terminal (see WINDOW SIZE)
  2746.      COLUMNS -- Number of columns in terminal (see WINDOW SIZE)
  2747.      TERMCAP -- Terminal capability string (see WINDOW SIZE)
  2748.      SYSTYPE -- The current system type (Domain OS only)
  2749.  
  2750. NNNNEEEEWWWW SSSSHHHHEEEELLLLLLLL VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
  2751.      aaaaddddddddssssuuuuffffffffiiiixxxx add a / for directories, and a space for normal files when
  2752.                complete matches a name exactly.  If unset don't add anything
  2753.                extra.
  2754.  
  2755.      aaaammmmppppmmmm      show all times in 12 hour, AM/PM format.
  2756.  
  2757.      aaaauuuuttttooooccccoooorrrrrrrreeeecccctttt
  2758.                Correct mis-spelled path components automatically before
  2759.                attempting completion.
  2760.  
  2761.      aaaauuuuttttooooeeeexxxxppppaaaannnndddd
  2762.                invoke the expand-history function automatically on completion.
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.                                                                        PPPPaaaaggggeeee 44442222
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2777.  
  2778.  
  2779.  
  2780.      aaaauuuuttttoooolllliiiisssstttt  list possibilities on an ambiguous completion.
  2781.  
  2782.      aaaauuuuttttoooollllooooggggoooouuuutttt
  2783.                The first word indicates number of minutes of inactivity before
  2784.                automatic logout.  The optional second word indicates the
  2785.                number of minutes of inactivity after which the user will be
  2786.                prompted for his login password to enter a command.
  2787.  
  2788.      bbbbaaaacccckkkkssssllllaaaasssshhhh____qqqquuuuooootttteeee
  2789.                makes the backslash quote \, ', and ". This option changes the
  2790.                parsing mechanism for tcsh, and it can cause syntax errors in
  2791.                _c_s_h scripts.
  2792.  
  2793.      ccccoooorrrrrrrreeeecccctttt   automatically try to correct the spelling of commands.  Must be
  2794.                set to either correct=cmd, only command name will be corrected,
  2795.                or correct=all, the whole line will be corrected.
  2796.  
  2797.      ddddeeeexxxxttttrrrraaaacccctttt  extract a directory on pushd rather than rotating.
  2798.  
  2799.      ddddiiiirrrrssssffffiiiilllleeee  If set, it contains the full path-name where a directory stack
  2800.                file is read/written.  It defaults to $home/.cshdirs. This file
  2801.                is executed last after .cshrc and .login to restore the
  2802.                directory stack.
  2803.  
  2804.      ddddiiiirrrrssssttttaaaacccckkkk  If set, it contains an array of all the directories on the
  2805.                directory stack. $dirstack[1] is the current working directory,
  2806.                $dirstack[2] the first directory on the stack, etc. Setting
  2807.                $dirstack resets all the stack entries, but the current working
  2808.                directory which is preserved.
  2809.  
  2810.      dddduuuunnnniiiiqqqquuuueeee   Push only directories that are not already in the directory
  2811.                stack.
  2812.  
  2813.      eeeecccchhhhoooo____ssssttttyyyylllleeee
  2814.                Set the style of the builtin echo. Valid values are:
  2815.  
  2816.             _b_s_d :   if the first argument is -n, don't echo a newline.
  2817.  
  2818.             _s_y_s_v :  recognize \ escape sequences in echo strings.
  2819.  
  2820.             _b_o_t_h :  recognize both -n and \ escape sequences.
  2821.  
  2822.             _n_o_n_e :  the purist's echo.
  2823.  
  2824.      eeeeddddiiiitttt      use the input editor, set by default.
  2825.  
  2826.      ffffiiiiggggnnnnoooorrrreeee   list of file name suffixes (e.g. .o, ~) to ignore during
  2827.                complete.
  2828.  
  2829.      ggggiiiidddd       the current real group id.
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.                                                                        PPPPaaaaggggeeee 44443333
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2843.  
  2844.  
  2845.  
  2846.      hhhhiiiissssttttlllliiiitttt   If set, history lines in the editor will be shown with its
  2847.                literal value (that is the line as it was input) instead of the
  2848.                shells lexical version. The current history line can be toggled
  2849.                between literal and lexical with the toggle-literal-history
  2850.                function.  History lines saved at shell exit are also saved as
  2851.                this variable indicates.
  2852.  
  2853.      hhhhiiiissssttttffffiiiilllleeee  If set, it contains the full path-name where a history file is
  2854.                read/written.  It defaults to $home/.history. This is useful
  2855.                when sharing the same home directory in different machines, or
  2856.                if one wants to save all the histories in the tty sessions. It
  2857.                is usually set in .cshrc for interactive shells, because
  2858.                history is sourced between .cshrc and .login so that it is
  2859.                available from .login.
  2860.  
  2861.      hhhhiiiissssttttoooorrrryyyy   The first word of the history variable indicates the number of
  2862.                history events to be saved. The optional second word indicates
  2863.                the format history is printed (Defaults to "%h\t%T\t%R\n").
  2864.  
  2865.      iiiimmmmpppplllliiiicccciiiittttccccdddd
  2866.                Can be set to enable implicit cd behavior, or set to _v_e_r_b_o_s_e to
  2867.                echo each implicit cd.
  2868.  
  2869.      iiiinnnnppppuuuuttttmmmmooooddddeeee Can be set to either _i_n_s_e_r_t or _o_v_e_r_w_r_i_t_e to control the line
  2870.                editing behavior, as described in section 1.
  2871.  
  2872.      lllliiiissssttttjjjjoooobbbbssss  list all jobs when suspending. set listjobs=long, produces long
  2873.                format.
  2874.  
  2875.      lllliiiissssttttlllliiiinnnnkkkkssss Resolve symbolic links when listing files so that the correct
  2876.                filetype is shown.
  2877.  
  2878.      lllliiiissssttttmmmmaaaaxxxx   maximum number of items to list without asking first.
  2879.  
  2880.      lllliiiissssttttmmmmaaaaxxxxrrrroooowwwwssss
  2881.                maximum number of rows of items to list without asking first.
  2882.                (local AFEB hack at University of Twente)
  2883.  
  2884.      mmmmaaaattttcccchhhhbbbbeeeeeeeepppp control beeping on completion.  With matchbeep=nomatch,
  2885.                completion only beeps when there is no match, with
  2886.                matchbeep=ambiguous, beeps also when there are multiple
  2887.                matches, with matchbeep=notunique, beeps when there is one
  2888.                exact and other longer matches, with matchbeep=never, it never
  2889.                beeps.
  2890.  
  2891.      nnnnoooobbbbeeeeeeeepppp    Disables beeping completely.
  2892.  
  2893.      nnnnooookkkkaaaannnnjjjjiiii   If kanji support is enable, setting this variable disables it,
  2894.                so that the meta key can be used.
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.                                                                        PPPPaaaaggggeeee 44444444
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2909.  
  2910.  
  2911.  
  2912.      nnnnoooossssttttaaaatttt    An list of directories that should not be stat'ed during a
  2913.                completion operation. Some directories e.g. "/afs", can take
  2914.                too much time to complete a _s_t_a_t(_2) operation, making them
  2915.                prime candidates for membership in this list.
  2916.  
  2917.      ooooiiiidddd       The organization id number (Domain OS only).
  2918.  
  2919.      pppprrrriiiinnnntttteeeexxxxiiiittttvvvvaaaalllluuuueeee
  2920.                if an interactive program exits non-zero, print the exit value.
  2921.  
  2922.      pppprrrroooommmmpppptttt    the string to prompt with.
  2923.  
  2924.      pppprrrroooommmmpppptttt2222   the string to prompt for while and for loops with.
  2925.  
  2926.      pppprrrroooommmmpppptttt3333   the string to prompt with when automatic spelling correction
  2927.                has corrected a command line.
  2928.  
  2929.      ppppuuuusssshhhhddddttttoooohhhhoooommmmeeee
  2930.                make pushd with no args do a "pushd ~" (like cd does).
  2931.  
  2932.      ppppuuuusssshhhhddddssssiiiilllleeeennnntttt
  2933.                do not print the dir stack on every pushd and popd.
  2934.  
  2935.      rrrreeeecccceeeexxxxaaaacccctttt  recognize exact matches even if they are ambiguous.
  2936.  
  2937.      rrrreeeeccccooooggggnnnniiiizzzzeeee____oooonnnnllllyyyy____eeeexxxxeeeeccccuuuuttttaaaabbbblllleeeessss
  2938.                list choices of commands only displays files in the path that
  2939.                are executable (slow).
  2940.  
  2941.      rrrrmmmmssssttttaaaarrrr    Prompt the user before execution of `rm *'.
  2942.  
  2943.      ssssaaaavvvveeeeddddiiiirrrrssss  Before exiting, create a file called $HOME/.cshdirs that
  2944.                contains the necessary commands to restore the current
  2945.                directory stack. _T_c_s_h will read this file during startup and
  2946.                restore the directory stack.
  2947.  
  2948.      ssssaaaavvvveeeehhhhiiiisssstttt  number of history items to save between login sessions.  If it
  2949.                is just set, the number of items is taken from $history.
  2950.  
  2951.      sssshhhhllllvvvvllll     Integer value indicating the number of nested shells. On login
  2952.                shells the level is reset to 1.
  2953.  
  2954.      sssshhhhoooowwwwddddoooottttssss  show hidden files in list and complete operations. If it is set
  2955.                to -A, then "." and ".." are not displayed, similarly to the
  2956.                BSD ls -A.
  2957.  
  2958.      ssssyyyymmmmlllliiiinnnnkkkkssss  can be set to: _c_h_a_s_e , in order to resolve the full path names,
  2959.                _i_g_n_o_r_e , in order to use $cwd to resolve relative directory
  2960.                references for builtins.  _e_x_p_a_n_d , in order to use $cwd and
  2961.                rewrite the arguments for commands.
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.                                                                        PPPPaaaaggggeeee 44445555
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  2975.  
  2976.  
  2977.  
  2978.      ttttccccsssshhhh      Contains the current version of the shell as R.VV.PP. The _R
  2979.                indicates the major release number, the _V_V the current version
  2980.                and the _P_P the patchlevel.
  2981.  
  2982.      tttteeeerrrrmmmm      the terminal type; see above.
  2983.  
  2984.      ttttppppeeeerrrriiiioooodddd   periodic command wait period (in minutes).
  2985.  
  2986.      ttttttttyyyy       The name of the tty, or empty if not attached to one.
  2987.  
  2988.      uuuuiiiidddd       the current real user ID.
  2989.  
  2990.      vvvveeeerrrrssssiiiioooonnnn   the version ID stamp for this _t_c_s_h. It contains, the origin of
  2991.                this version of _t_c_s_h, the date this version was released and a
  2992.                string containing a comma separated list of the compile time
  2993.                options enabled:
  2994.                8b 7b  If tcsh was compiled to be eight bit clean
  2995.                       or not.  The default is 8b.
  2996.                nls    Set if tcsh uses the system's NLS, should be
  2997.                       the default for systems that have NLS.
  2998.                lf     Set if tcsh should execute .login before
  2999.                       .cshrc on login shells. Default is not set.
  3000.                dl     Set if tcsh should put . last on the path
  3001.                       for security. Default is set.
  3002.                vi     Set if tcsh's default editor is vi. Default
  3003.                       is unset (emacs)
  3004.                dtr    Set if tcsh should drop dtr on login shells
  3005.                       when exiting.  Default is unset.
  3006.                bye    Set if tcsh should accept bye in addition
  3007.                       to logout, and rename log to watchlog.
  3008.                       Default is unset.
  3009.                al     Set if tcsh should determine if autologout
  3010.                       should be enabled. The default is set.
  3011.                kan    Set if tcsh is compiled for Kanji.
  3012.                       (ignore the iso character set.) Default is unset.
  3013.                sm     Set if tcsh was compiled to use the system's malloc.
  3014.                hb     Set if tcsh is emulating #!<program> <args> in
  3015.                       shell script execution
  3016.  
  3017.      In addition to the above strings, administrators can enter local strings
  3018.      to indicate differences in the local version.
  3019.  
  3020.  
  3021.      vvvviiiissssiiiibbbblllleeeebbbbeeeellllllll
  3022.                use the visible bell (screen flash) rather than audible bell.
  3023.  
  3024.      wwwwaaaattttcccchhhh     list of events to watch.
  3025.  
  3026.      wwwwhhhhoooo       format string for the printouts generated when _w_a_t_c_h is set.
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.                                                                        PPPPaaaaggggeeee 44446666
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  3041.  
  3042.  
  3043.  
  3044.      wwwwoooorrrrddddcccchhhhaaaarrrrssss list of non-alphanumeric characters considered part of a word
  3045.                for the purpose of the forward-word, backward-word, etc.
  3046.                functions -- defaults to "*?_-.[]~=".
  3047.  
  3048. NNNNEEEEWWWW SSSSPPPPEEEECCCCIIIIAAAALLLL AAAALLLLIIIIAAAASSSSEEEESSSS
  3049.      _c_w_d_c_m_d    the command is run after every change of working directory.
  3050.  
  3051.      _p_e_r_i_o_d_i_c  the command to be run every _t_p_e_r_i_o_d minutes.
  3052.  
  3053.      _p_r_e_c_m_d    the command to be run prior to printing each prompt.
  3054.  
  3055.      _b_e_e_p_c_m_d   the command to be run every time _t_c_s_h wants to echo the
  3056.                terminal bell.
  3057.  
  3058. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  3059.      xterm(1), twm(1), csh(1), chsh(1), exec(2), exit(2), wait(2), termcap(5),
  3060.      termio(7)
  3061.  
  3062. BBBBUUUUGGGGSSSS
  3063.      The screen update for lines longer than the screen width is very poor if
  3064.      the terminal cannot move the cursor up (i.e. terminal type "dumb").
  3065.  
  3066.      I am certain that there are bugs.  Bugs (preferably with fixes) should be
  3067.      sent to Christos Zoulas (christos@ee.cornell.edu).
  3068.  
  3069. LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
  3070.      In non-interactive mode, signals for Hangup, CPU time limit exceeded and
  3071.      File size limit exceeded (SIGHUP, SIGXCPU and SIGXFSZ respectively) are
  3072.      ignored. Also note that the behavior of these signal handlers in
  3073.      interactive mode is dependent on the way they were handled in the process
  3074.      from which _t_c_s_h was started.
  3075.  
  3076.      If a user had typed:
  3077.            > rsh skier@tahoe xwsh -display foo:0
  3078.  
  3079.      In this case, _r_s_h starts a _t_c_s_h (login shell for a user skier on a
  3080.      machine called tahoe) and passes a command 'xwsh' to be run, the
  3081.      interactive _t_c_s_h in the _x_w_s_h will not have these signals enabled. This is
  3082.      due to the fact that the first _t_c_s_h was non-interactive and executes a
  3083.      'xwsh' command.
  3084.  
  3085.      If these signals are to be enabled, you can either use _c_s_h(1) or first
  3086.      start an interactive _t_c_s_h via _r_s_h and then invoke 'xwsh'.
  3087.            > rsh skier@tahoe
  3088.            skier@tahoe 1> xwsh -display foo:0
  3089.  
  3090.  
  3091.      Sometimes, particularly when using wildcards, the shell will fail to
  3092.      execute a command, and complain with the message
  3093.         AAAArrrrgggg lllliiiisssstttt ttttoooooooo lllloooonnnngggg
  3094.      This can often be avoided by using multiple commands, the _x_a_r_g_s(1)
  3095.      command, or by increasing the nnnnccccaaaarrrrggggssss kernel parameter with the
  3096.  
  3097.  
  3098.  
  3099.                                                                        PPPPaaaaggggeeee 44447777
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  3107.  
  3108.  
  3109.  
  3110.      _s_y_s_t_u_n_e(1m) command.
  3111.  
  3112. VVVVEEEERRRRSSSSIIIIOOOONNNN
  3113.      This man page documents tcsh 6.04.00 (Cornell) 93/07/03.
  3114.  
  3115. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  3116.      Ken Greer, HP Labs, 1981
  3117.      Wrote the command completion.
  3118.  
  3119.      Mike Ellis, Fairchild, 1983
  3120.      Added command name recognition/completion.
  3121.  
  3122.      Paul Placeway, Ohio State CIS dept., 1983
  3123.      Added the command line editor.
  3124.  
  3125.      Rayan Zachariassen, University of Toronto, 1984
  3126.      Added the builtin _w_h_i_c_h feature to the editor, and the code for _l_s-_F .
  3127.      Also numerous bug fixes, modifications, and performance enhancements.
  3128.  
  3129.      Chris Kingsley, Caltech
  3130.      Wrote the fast storage allocator routines (nmalloc.c).
  3131.  
  3132.      Karl Kleinpaste, CCI 1983-4
  3133.      Added special aliases, directory stack extraction stuff, login/logout
  3134.      watch, and scheduled events.  Also came up with the idea of the new
  3135.      prompt format.
  3136.  
  3137.      Paul Placeway, Ohio State CIS dept., 1987
  3138.      Re-wrote the editor, cleaned up other code, and added the prompt
  3139.      routines, added to the syntax for file name expressions, and sped up the
  3140.      shell some.
  3141.  
  3142.      Chris Grevstad, TRW, 1987
  3143.      Ported the 4.3 csh sources to tcsh.
  3144.  
  3145.      Christos S. Zoulas, Cornell U. EE dept., 1987-92
  3146.      ported tcsh to HPUX, and System V rel. 2 and 3 and wrote a SysV version
  3147.      of getwd.c. Added SHORT_STRINGS support. New version of sh.glob.c.
  3148.  
  3149.      James J Dempsey, BBN, 1988, and Paul Placeway, OSU, 1988
  3150.      Re-ported tcsh to A/UX.
  3151.  
  3152.  
  3153. BBBBUUUUGGGGFFFFIIIIXXXXEEEESSSS AAAANNNNDDDD EEEENNNNHHHHAAAANNNNCCCCEEEEMMMMEEEENNNNTTTTSSSS
  3154.      Edward Hutchins, Silicon Graphics Inc., 1996
  3155.      Added implicit cd.
  3156.  
  3157.      Tim P. Starrin, National Aeronautics and Space Administration, Langley
  3158.      Research Center Operations, 1993
  3159.      Readonly variable additions.
  3160.  
  3161.      Jeff Fink, 1992
  3162.  
  3163.  
  3164.  
  3165.                                                                        PPPPaaaaggggeeee 44448888
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  3173.  
  3174.  
  3175.  
  3176.      Added complete-word-fwd, and complete-word-back editor functions
  3177.  
  3178.      Harry C. Pulley, 1992
  3179.      Coherent port
  3180.  
  3181.      Andy Phillips, Mullard Space Science Lab U.K., 1992
  3182.      VMS-POSIX port.
  3183.  
  3184.      Beto Appleton, IBM Corp., 1992
  3185.      Walking process group fixes, lots of misc csh bug fixes, POSIX file
  3186.      tests, POSIX SIGHUP.
  3187.  
  3188.      Scott Bolte, Cray Computer Corp., 1992
  3189.      CSOS port.
  3190.  
  3191.      Kaveh R. Ghazi, Rutgers University, 1992
  3192.      Fixes and Ports for Tek, m88k, Titan, Masscomp.
  3193.  
  3194.      Mark Linderman, Cornell University, 1992
  3195.      OS/2 Port, (he does not run OS/2 anymore so he cannot help you porting
  3196.      tcsh on it)
  3197.  
  3198.      Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992
  3199.      Linux port.
  3200.  
  3201.      Scott Krotz, Motorola, 1991
  3202.      Minix port.
  3203.  
  3204.      David Dawes, Sydney U. Australia, Physics dept., 1991
  3205.      SVR4 job control fixes. (reverse pipeline startup code, and signal
  3206.      fixes).
  3207.  
  3208.      Jose Sousa, Interactive Systems Corp., 1991
  3209.      Extended vi fixes. Added delete command in vi.
  3210.  
  3211.      Marc Horowitz, MIT, 1991
  3212.      Ansification fixes, new exec hashing code, imake fixes, where builtin.
  3213.  
  3214.      Eric Schnoebelen, Convex, 1990
  3215.      Convex support, lots of csh bug fixes, save and restore of directory
  3216.      stack.
  3217.  
  3218.      Jaap Vermeulen, Sequent, 1990-91
  3219.      Vi mode fixes, expand-line, window change fixes, ported to symmetry
  3220.      machines.
  3221.  
  3222.      Ron Flax, Apple, 1990
  3223.      Ported again to A/UX 2.0
  3224.  
  3225.      Dan Oscarsson, LTH Sweden, 1990
  3226.      NLS support and simulated for non NLS sites.  Correction of file names
  3227.      also handles the case when the / is replaced by another character.  The
  3228.  
  3229.  
  3230.  
  3231.                                                                        PPPPaaaaggggeeee 44449999
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  3239.  
  3240.  
  3241.  
  3242.      editor does not switch into cbreak mode unless needed.  The shell will
  3243.      not use character attributes when output is not to a tty.
  3244.  
  3245.      Johan Widen, SICS Sweden, 1990
  3246.      Shell level variable, mach support, correct-line, 8-bit printing.
  3247.  
  3248.      Matt Day, Sanyo Icon, 1990
  3249.      Added POSIX termio support; Fixed limit stuff for SysV.
  3250.  
  3251.      Hans J. Albertsson (Sun Sweden)
  3252.      Added the ampm variable handling, DING!, and the settc and telltc
  3253.      builtins.
  3254.  
  3255.      Michael Bloom
  3256.      Fixed some of the interrupt handling.
  3257.  
  3258.      Michael Fine, Digital Equipment Corp
  3259.      added the extended key support.
  3260.  
  3261.      Daniel Long, NNSC, 1988
  3262.      Added the wordchars variable.
  3263.  
  3264.      George Hartzell, MCD Biology, University of Colorado-Boulder, 1988
  3265.      Fixed the always resetting to DEL bug.
  3266.  
  3267.      Patrick Wolfe, Kuck and Associates, Inc., 1988
  3268.      Cleaned up VI mode and wrote the new editor description (in section 1).
  3269.  
  3270.      Jak Kirman, 1988
  3271.      Fixed the SunOS 4 giant stack allocation bug.
  3272.  
  3273.      Bruce Robertson, Tektronix, 1989
  3274.      Fixed setting erase and kill (again).
  3275.  
  3276.      David C Lawrence, Rensselaer Polytechnic Institute, 1989
  3277.      Added "autolist" variable and code to list possibilities on ambiguous
  3278.      completion.
  3279.  
  3280.      Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991.
  3281.      Modified "autolist" variable and code to give options on beeping
  3282.      behavior.  Modified the history search to search for the whole string
  3283.      from the beginning of the line to the cursor.
  3284.  
  3285.      Alec Wolman, DEC, 1989
  3286.      Added code to allow newlines in the prompt.
  3287.  
  3288.      Matt Landau, BBN, 1989
  3289.      Fixed YP bugs on Suns, added .tcshrc stuff.
  3290.  
  3291.      Ray Moody, Purdue Physics, 1989
  3292.      Added the code to do magic spacebar history expansion.
  3293.  
  3294.  
  3295.  
  3296.  
  3297.                                                                        PPPPaaaaggggeeee 55550000
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. TTTTCCCCSSSSHHHH((((1111))))                                                                TTTTCCCCSSSSHHHH((((1111))))
  3305.  
  3306.  
  3307.  
  3308.      Mordechai ????, Intel, 1989
  3309.      Re-arranged the printprompt() routine to use a switch(*cp) (rather than a
  3310.      bunch of ifs), and added a few things to it.
  3311.  
  3312.      Josh Siegel, dspo.gov, 1989
  3313.      Fixed "fg-editor" and added the status line shell variables "sl" and
  3314.      "el".
  3315.  
  3316.      Karl Berry, UMB, 1989
  3317.      Fixed a bug involving environ (in sh.func.c) on NeXT computers.
  3318.  
  3319.      Michael Greim, Universitaet des Saarlandes, Saarbruecken, W-Germany,
  3320.      Fixed the nested backquote bug (yes, you can do it; think about aliases)
  3321.      in 4.2 csh.  This fix was posted to comp.bugs.4bsd.
  3322.  
  3323.      Kazuhiro Honda, Department of Computer Science, Keio University, 1989
  3324.      Added the code for automatic spelling correction, the prompt3 stuff (the
  3325.      autocorrect prompt), and HOSTTYPE symbols for the Sony NEWS.
  3326.  
  3327.      Paul Placeway, BBN, 1990
  3328.      Fixed character redrawing code insert bugs, and made redrawing code
  3329.      handle multiple character movement, insert, and delete (if it exists).
  3330.      Fixed setting of SHELL.
  3331.  
  3332.      Per Hedeland, Ellemtel, Sweden, 1990
  3333.      Various bugfixes and improvements, e.g. in history expansion, autolist,
  3334.      added autoexpand, updated the manual.
  3335.  
  3336. TTTTHHHHAAAANNNNKKKKSSSS TTTTOOOO
  3337.      A special thanks to: Bryan Dunlap, Clayton Elwell, Karl Kleinpaste, Bob
  3338.      Manson, Steve Romig, Diana Smetters, Bob Sutterfield, Mark Verber,
  3339.      Elizabeth Zwicky, and all the other people at Ohio State for suggestions
  3340.      and encouragement.
  3341.  
  3342.      Also, thanks to all the people on the net for putting up with, reporting
  3343.      bugs in, and suggesting new additions to the old tcsh editor.
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.                                                                        PPPPaaaaggggeeee 55551111
  3364.  
  3365.  
  3366.  
  3367.